专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Symbian

怎么获取IMSI号

发布时间:2010-05-30 00:33:24 文章来源:www.iduyao.cn 采编人员:星星草
如何获取IMSI号?
我用下面代码获取IMSI号,返回-46,会是什么原因呢?

#include <Etel3rdParty.h>

class MImsiObserver
{
public:
// New methods  
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);

public:
void StartReading(void);

private:
MImsiObserver& iObserver;
CTelephony* iTelephony;
CTelephony::TSubscriberIdV1 iImsiV1;
CTelephony::TSubscriberIdV1Pckg iImsiV1Pkg;
};










#include "ImsiReader.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();
}
void CImsiReader::StartReading(void)
{
iTelephony->GetSubscriberId(iStatus, iImsiV1Pkg);
SetActive();
}

void CImsiReader::DoCancel()
{
iTelephony->CancelAsync(CTelephony::EGetSubscriberIdCancel);
}

void CImsiReader::RunL()
{
//LP: added ";" and replaced iTelephony with iObserver
iObserver.GotIMSIL(iImsiV1.iSubscriberId, iStatus.Int());
}






这代码我是在诺基亚论坛下下来的,很奇怪的是在那里下载的例子可以正常获取,我新建一个工程把代码移过来就取不到,什么都没动。代码在这:http://wiki.forum.nokia.com/index.php/Reading_IMSI_in_3rd_Edition

哪位大大给点意见吗?能力我都加上了

------解决方案--------------------
Symbian OS s60 3rd编程中实现IMSI、IMEI查询

http://cache.baidu.com/c?m=9d78d513d9820af008b6c7221a16a6271d5697624cc0a06568a0905fe26e4c324471e2cb76754e5a8893682041f14606acb6746536703daacb96d51fcabbe52b2b893034074ddb1e0f9b4ff0cb4427cb3dc004b4fa04a6fca374c8ffcfd3dd5258c954037d80f288580717cf6df61e31e6ac9d55&p=857eda0086cc40ac1ebe9b794750&user=baidu&fm=sc&query=Symbian+s60%BB%F1%C8%A1cellid&qid=b17a01f90182dcb4&p1=2

我参照里面的代码成功获取到imsi和imei
------解决方案--------------------
Hi,

-46是因为应用程序少能力,你试试加上ReadDeviceData能力看看能不能解决。



如果你确认该加的能力都加到mmp里了但还是不行,那建议清一下整个工程,然后重新build。在用旧版本的Carbide.c++的时候我遇到过改了mmp但IDE不认的情况,但清一下工程就好了。

Regards

Ziteng Chen
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: