读取sim的 imsi号问题,附代码

top_spitfire top_spitfire 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我想判断手机中是否有sim卡,所以希望通过读取sim卡的imsi号来判断,下面是我使用的代码,
#ifndef MYTELEPHONY_H
#define MYTELEPHONY_H

#include <e32base.h>
#include <Etel3rdParty.h>

class CMyTelephony : public CActive
{
public:
static void GetIMEIL(TDes& aIMEI);

protected:
void DoCancel();
void RunL();

private:
static CMyTelephony* NewLC();
static CMyTelephony* NewL();
~CMyTelephony();

CMyTelephony();
void ConstructL();

void GetPhoneId();

private:
CTelephony* iTelephony;
CTelephony::TCancellationRequest iRequest;
CTelephony::TPhoneIdV1 iPhoneIdV1;
CTelephony::TPhoneIdV1Pckg iPhoneIdV1Pckg;
};

#endif // MYTELEPHONY_H



// 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::GetIMEIL(TDes& aIMEI)
{
#ifdef _DEBUG
_LIT(KDebugIMEI, "004601018693425");
aIMEI = KDebugIMEI;
#else

CMyTelephony* telephony = CMyTelephony::NewL();
telephony->GetPhoneId();
aIMEI = telephony->iPhoneIdV1.iSerialNumber;
delete telephony;
#endif
}

void CMyTelephony:oCancel()
{
iTelephony->CancelAsync(iRequest);
}

void CMyTelephony::RunL()
{
CActiveScheduler::Stop();
}

CMyTelephony::~CMyTelephony()
{
delete iTelephony;
}

CMyTelephony::CMyTelephony() : CActive(CActive::EPriorityStandard), iPhoneIdV1Pckg(iPhoneIdV1)
{
CActiveScheduler::Add(this);
}

void CMyTelephony::ConstructL()
{
iTelephony = CTelephony::NewL();
}

void CMyTelephony::GetPhoneId()
{
Cancel();
iRequest = CTelephony::EGetPhoneIdCancel;
iTelephony->GetPhoneId(iStatus, iPhoneIdV1Pckg);
SetActive();
CActiveScheduler::Start();
}

红色部分注释之后在,代码在模拟器上运行读出的imsi号是15个0,但该代码在手机(e50,n73)上运行都没有读出任何内容,无论有没有sim卡都是,为什么呢?

...全文
评论 2
收藏 已收藏
分享
返回顶部
top_spitfire
Symbian 3,118 成员 9,182 内容