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.

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

From Wiki
Jump to: navigation, search
Article Metadata

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

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

IMSI означает "International Mobile Subscriber Identity" ("Уникальный Международный Идентификатор Абонента").


Contents

IMSIApp.h

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

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




IMSIApp.cpp

#include "IMSIApp.h"
 
void CIMSIApp::GetIMSI(TDes& aIMSI)
{
CIMSIApp* self= new (ELeave) CIMSIApp(aIMSI);
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::PopAndDestroy(self);
}
 
void CIMSIApp::ConstructL()
{
iTelephony = CTelephony::NewL();
CActiveScheduler::Add(this);
 
CTelephony::TSubscriberIdV1Pckg iSubscriberIdV1Pckg(iSubscriberIdV1);
iTelephony->GetSubscriberId(iStatus,iSubscriberIdV1Pckg);
SetActive();
CActiveScheduler::Start();
}
 
CIMSIApp:: CIMSIApp(TDes& imsi): CActive(EPriorityStandard),IMSI(imsi)
{
//конструктор по-умолчанию
}
 
void CIMSIApp::RunL()
{
if(iStatus==KErrNone)
{
IMSI = iSubscriberIdV1.iSubscriberId;
CActiveScheduler::Stop();
}
}
 
void CIMSIApp::DoCancel()
{
iTelephony->CancelAsync(CTelephony::EGetSubscriberIdCancel);
}


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

Теперь вы можете вызывать статическую функцию из обработчика комманд вашего приложения. Например:

case EReadIMSICommand1:
{
TBuf<25> iIMSI;
CIMSIApp::GetIMSI(iIMSI);
CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
informationNote->ExecuteLD(iIMSI);
}

Для того, чтобы установить ваше приложение на телефон, вы должны подписать полученный .Sis файл с помощью сертификата разработчика.

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

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

Ссылки

  • 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.
251 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.

×