## Finding IMEI number of the Mobile
Required LIBRARY: etel3rdparty.lib
Required Capability: No
Header file: IMEIApp.h
#include <e32base.h> #include <Etel3rdParty.h> class CIMEIApp : public CActive { private: void ConstructL(); CTelephony* iTelephony; CTelephony::TPhoneIdV1 iPhoneIdV1; CTelephony::TPhoneIdV1Pckg iPhoneIdV1Pckg; public: CIMEIApp(TDes& aIMEI); ~CIMEIApp(); static void GetIMEI(TDes& aIMEI); TDes& IMEI; private: /* These are the pure virtual methods from CActive that MUST be implemented by all active objects */ void RunL(); void DoCancel(); };
Cpp file: 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); iTelephony->GetPhoneId(iStatus, iPhoneIdV1Pckg); SetActive(); CActiveScheduler::Start(); } CIMEIApp:: CIMEIApp(TDes& imei): CActive(EPriorityStandard),IMEI(imei),iPhoneIdV1Pckg(iPhoneIdV1) { //default constructor } CIMEIApp::~CIMEIApp() { delete iTelephony; iTelephony = NULL; } void CIMEIApp::RunL() { if(iStatus==KErrNone) { IMEI= iPhoneIdV1.iSerialNumber; CActiveScheduler::Stop(); } } void CIMEIApp::DoCancel() { iTelephony->CancelAsync(CTelephony::EGetPhoneIdCancel); }
just use:
TBuf<25> iIMEI; CIMEIApp::GetIMEI(iIMEI);
Thanks for the HELP!!! 😀 it worked