Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

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

From 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 01:17.
208 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×