×
Namespaces

Variants
Actions

Получение IMEI в Symbian 3-й редакции - синхронный метод

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Пример кода
Исходный файл: Media:ReadIMEI.zip

Статья
Перевод:
truf
Последнее редактирование: hamishwillee (09 Dec 2011)

IMEI означает "International Mobile Equipment Identity" ("Международный Идентификатор Мобильного Оборудования"). Необходимость в получении номера IMEI телефона возникает достаточно часто. В основном это связано с механизмом лицензирования в коммерческих приложениях.


Contents

IMEIApp.h

#include <e32base.h>
#include <Etel3rdParty.h>
 
class CIMEIApp : public CActive
{
private:
void ConstructL();
CTelephony* iTelephony;
CTelephony::TPhoneIdV1 iPhoneIdV1;
 
public:
CIMEIApp(TDes& aIMEI);
~CIMEIApp();
static void GetIMEI(TDes& aIMEI);
TDes& IMEI;
 
private:
/*
Далее следуют виртуальные методы класса CActive,
которые ДОЛЖНЫ быть реализованы всеми активными объектами
*/

void RunL();
void DoCancel();
};





IMEIApp.cpp

#include "IMEIApp.h"
 
void CIMEIApp::GetIMEI(TDes& aIMEI)
{
CIMEIApp* self= new (ELeave) CIMEIApp(aIMEI);
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::PopAndDestroy(self);
}
 
void CIMEIApp::ConstructL()
{
iTelephony = CTelephony::NewL();
CActiveScheduler::Add(this);
 
CTelephony::TPhoneIdV1Pckg iPhoneIdV1Pckg(iPhoneIdV1);
iTelephony->GetPhoneId(iStatus, iPhoneIdV1Pckg);
SetActive();
CActiveScheduler::Start();
}
 
CIMEIApp:: CIMEIApp(TDes& imei): CActive(EPriorityStandard),IMEI(imei)
{
//конструктор по-умолчанию
}
 
CIMEIApp::~CIMEIApp()
{
delete iTelephony;
iTelephony = NULL;
}
 
void CIMEIApp::RunL()
{
if(iStatus==KErrNone)
{
IMEI= iPhoneIdV1.iSerialNumber;
CActiveScheduler::Stop();
}
}
 
void CIMEIApp::DoCancel()
{
iTelephony->CancelAsync(CTelephony::EGetPhoneIdCancel);
}



Для использования этого кода, выполните следующие шаги:

  1. Создайте простое приложение "Hello World" с помощью шаблонов.
  2. Поместите файл IMEIApp.h в папку inc проекта.
  3. Поместите файл IMEIApp.cpp в папку src проекта.
  4. Откройте .mmp файл проекта и добавьте строку SOURCE IMEIApp.cpp.
  5. Откройте .mmp файл проекта и добавьте строку LIBRARY etel3rdparty.lib.
  6. Теперь добавьте следующий заголовочный файл в ваш класс:
    #include "IMEIApp.h". Например в файл: "CYrAppUi.h"
  7. Теперь вы можете вызывать статическую функцию из обработчика комманд вашего приложения.
    Например:


case EReadIMEICommand1:
{
TBuf<25> iIMEI;
CIMEIApp::GetIMEI(iIMEI);
CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
informationNote->ExecuteLD(iIMEI);
}


Вы можете скачать демонстрационный проект здесь.

Внутренние ссылки

Ссылки

  • Get the IMEI, IMSI, CellId etc., synchronously on 3.x devices (Blog no longer available, content reproduced below:)
[show details]
This page was last modified on 9 December 2011, at 04:17.
106 page views in the last 30 days.