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

top_spitfire 2008-09-23 10:14:08
我想判断手机中是否有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卡都是,为什么呢?

...全文
359 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
anel 2008-09-23
  • 打赏
  • 举报
回复
puddings 2008-09-23
  • 打赏
  • 举报
回复
sim卡的卡号是TSubscriberIdV1::iSubscriberId 即IMSI

你读的是手机串号IMEI

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧