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:14, 1 January 2008.

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

From Forum Nokia Wiki

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


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 файл с помощью сертификата разработчика.

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

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

Ссылки

Related Discussions
Thread Thread Starter Forum Replies Last Post
how to read IMSI in S60 2nd fp3 the_healer General Symbian C++ 2 2008-05-05 12:55
can symbian app determin phone number? steve@slicewireless General Symbian C++ 6 2006-01-25 12:51
Help on series 80? vasant21 General Symbian C++ 3 2006-08-18 12:29
how to get imsi? csh_cao General Symbian C++ 1 2005-03-07 03:09
Symbian C++ and SIM Card sinhashivam General Symbian C++ 4 2006-08-17 14:13
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX