Code:
// MyTelephony.h
//
#ifndef MYTELEPHONY_H
#define MYTELEPHONY_H
#include <e32base.h>
#include <Etel3rdParty.h>
class CMyTelephony : public CActive
{
public:
static void GetIMSIL(TDes& aIMSI);
protected:
void DoCancel();
void RunL();
private:
static CMyTelephony* NewLC();
static CMyTelephony* NewL();
~CMyTelephony();
CMyTelephony();
void ConstructL();
void GetSubscriberId();
private:
CTelephony* iTelephony;
CTelephony::TCancellationRequest iRequest;
CTelephony::TSubscriberIdV1 iSubscriberId;
CTelephony::TSubscriberIdV1Pckg iSubscriberIdPckg;
};
#endif // MYTELEPHONY_H
Code:
// MyTelephony.cpp
//
#include <e32svr.h>
#include "MyTelephony.h"
CMyTelephony* CMyTelephony::NewLC()
{
CMyTelephony* self = new (ELeave) CMyTelephony;
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CMyTelephony* CMyTelephony::NewL()
{
CMyTelephony* self = CMyTelephony::NewLC();
CleanupStack::Pop(self);
return self;
}
void CMyTelephony::GetIMSIL(TDes& aIMSI)
{
#ifdef _DEBUG
_LIT(KDebugIMSI, "000000000000000");
aIMSI = KDebugIMSI;
#else
CMyTelephony* telephony = CMyTelephony::NewL();
telephony->GetSubscriberId();
aIMSI = telephony->iSubscriberId.iSubscriberId;
delete telephony;
#endif
}
void CMyTelephony::DoCancel()
{
iTelephony->CancelAsync(iRequest);
}
void CMyTelephony::RunL()
{
CActiveScheduler::Stop();
}
CMyTelephony::~CMyTelephony()
{
delete iTelephony;
}
CMyTelephony::CMyTelephony() : CActive(CActive::EPriorityStandard), iSubscriberIdPckg(iSubscriberId)
{
CActiveScheduler::Add(this);
}
void CMyTelephony::ConstructL()
{
iTelephony = CTelephony::NewL();
}
void CMyTelephony::GetSubscriberId()
{
Cancel();
iRequest = CTelephony::EGetSubscriberIdCancel;
iTelephony->GetSubscriberId(iStatus, iSubscriberIdPckg);
SetActive();
CActiveScheduler::Start();
}
Code:
#include "MyTelephony.h" ... TBuf<CTelephony::KIMSISize> imsi; CMyTelephony::GetIMSIL(imsi); // synchronous CEikonEnv::Static()->InfoWinL(imsi, KNullDesC()); ...
本文介绍了一个名为CMyTelephony的类,该类用于在Symbian系统中获取国际移动用户识别码(IMSI)。通过同步接口,可以在应用程序中轻松地获取到用户的IMSI信息。
2088

被折叠的 条评论
为什么被折叠?



