×
Namespaces

Variants
Actions

Получение IMSI в Symbian 3-й редакции

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Статья
Перевод:
Оригинал: Reading IMSI in 3rd Edition
truf
Последнее редактирование: hamishwillee (09 Dec 2011)

Этот пример демонстрирует получение IMSI (идентификационный номер SIM карты абонента, передаваемый мобильному оператору во время звонка) в устройствах на базе Symbian 3-й редакции. Скорее всего этот код не будет работать в эмуляторе, он предназначен для использования непосредственно на устройстве.


Contents

IMSI_Getter.h

#include <e32base.h>
#include <F32FILE.H>
#include <d32dbms.h>
#include <BADESCA.H>
#include <Etel3rdParty.h>
#include <MTCLREG.H>
 
 
class MImsiObserver
{
public: // Новые методы
virtual void GotIMSIL(const TDesC& aIMSI, TInt aError) = 0;
};
 
class CImsiReader : public CActive
{
 
public:
static CImsiReader* NewL(MImsiObserver* aObserver);
static CImsiReader* NewLC(MImsiObserver* aObserver);
~CImsiReader();
 
protected:
void DoCancel();
void RunL();
 
private:
CImsiReader(MImsiObserver* aObserver);
void ConstructL(void);
 
private:
MImsiObserver* iObserver;
CTelephony* iTelephony;
CTelephony::TSubscriberIdV1 iImsiV1;
CTelephony::TSubscriberIdV1Pckg iImsiV1Pkg;
};






IMSI_Getter.cpp

#include <COEMAIN.H>
#include <BAUTILS.H>
#include <apmrec.h>
#include <apgcli.h>
#include <smut.h>
 
 
CImsiReader* CImsiReader::NewL(MImsiObserver* aObserver)
{
CImsiReader* self = NewLC(aObserver);
CleanupStack::Pop(self);
return self;
}
 
 
CImsiReader* CImsiReader::NewLC(MImsiObserver* aObserver)
{
CImsiReader* self = new (ELeave) CImsiReader(aObserver);
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
 
 
CImsiReader::CImsiReader(MImsiObserver* aObserver)
:CActive(0),iObserver(aObserver),iImsiV1Pkg(iImsiV1)
{
}
 
CImsiReader::~CImsiReader()
{
Cancel();
delete iTelephony;
 
}
 
void CImsiReader::ConstructL(void)
{
CActiveScheduler::Add(this);
 
iTelephony = CTelephony::NewL();
iTelephony->GetPhoneId(iStatus,iIdV1Pkg);
SetActive();
}
 
void CImsiReader::DoCancel()
{
iTelephony->CancelAsync(CTelephony::EGetSubscriberIdCancel);
}
 
 
void CImsiReader::RunL()
{
iTelephony->GotIMSIL(iImsiV1.iSubscriberId,iStatus.Int())
}





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

Ссылки

  • 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 05:03.
58 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.

×