Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 19:13, 1 January 2008.

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

From Forum Nokia Wiki

Перевод с английского, оригинальная статья находится здесь.


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);
}


Вы можете скачать демонстрационный проект, созданный в MS 2003 IDE с помощью Carbide.vs здесь.


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

Ссылки


Related Discussions
Thread Thread Starter Forum Replies Last Post
how to get phone information? sumn79 General Symbian C++ 2 2004-03-09 12:46
I type*#06# for IMEI, N71 sees *as text kiwited General Symbian C++ 1 2006-06-21 16:10
IMEI numbers Zhadnost General Discussion 4 2005-12-07 14:19
IMEI and device features sandysrivastava General Discussion 2 2005-05-03 10:57
DBMS and Ensymble aldosilva Python 16 2008-05-27 08:32
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX