Получение идентификатора соты с помощью CTelephony
Метаданные
Статья
Перевод:
Оригинал: Cell ID with CTelephony
Последнее редактирование: hamishwillee
(09 Dec 2011)
Этот пример демонстрирует получение идентификатора соты с помощью класса CTelephony. Этот код будет работать только на устройствах на базе Symbian 3-й редакции.
Для использования данного примера, вам необходимо реализовать в своем классе функцию обратного вызова и создать экземпляр класса CCellIDCheck. После этого, функция обратного вызова будет вызвана с информацией о идентификаторе текущей соты. Аргумент aCountryCode будет содержать трехзначный код страны, а aNwId - двузначный код сети сотовой связи в этой стране.
Аргумент aAreaCode содержит номер зоны в сотовой сети, а aCellId - уникальный идентификатор соты в этой зоне.
Contents |
GetCellID.cpp
CCellIDCheck::~CCellIDCheck()
{
Cancel();
delete iTelephony;
}
void CCellIDCheck::ConstructL(void)
{
iTelephony = CTelephony::NewL();
iTelephony->GetCurrentNetworkInfo(iStatus, iIdV1Pkg);
SetActive();
}
CCellIDCheck::CCellIDCheck(MCellIdObserver& aObserver)
: CActive(EPriorityNormal),iObserver(aObserver),iIdV1Pkg(iIdV1)
{
CActiveScheduler::Add(this);
}
void CCellIDCheck::RunL()
{
iObserver.CellIDL(iIdV1.iCountryCode,iIdV1.iNetworkId,iIdV1.iLocationAreaCode,iIdV1.iCellId);
}
void CCellIDCheck::DoCancel()
{
iTelephony->CancelAsync(CTelephony::EGetCurrentNetworkInfoCancel);
}
GetCellID.h
#include <Etel3rdParty.h>
class MCellIdObserver
{
public:
virtual void CellIDL(const TDesC& aCountryCode,const TDesC& aNwId,TUint aAreaCode,TUint aCellId) = 0;
};
class CCellIDCheck : public CActive
{
public:
CCellIDCheck(MCellIdObserver& aObserver);
void ConstructL(void);
~CCellIDCheck();
private:
void RunL();
void DoCancel();
private:
MCellIdObserver& iObserver;
CTelephony* iTelephony;
CTelephony::TNetworkInfoV1 iIdV1;
CTelephony::TNetworkInfoV1Pckg iIdV1Pkg;
};


(no comments yet)