首 页 | 新 闻 | Symbian | Windows Mobile| J2ME | 下载中心 | 游戏策划 | 购书指南 | 移动开发视频教程
您现在的位置: 开发视界 >> 专家专栏 >> 新鲜的Lychee >> 文章正文
如何找回IMSI序号
作者:新鲜的Ly…    文章来源:本站原创    更新时间:2006-6-13 8:26:11

IMSI是International Mobile Subscriber Identity的缩写。IMSI是每个SIM卡(Subscriber Identification Module)所附带的特殊的15位号码,该号码使得在手机网络中能够识别出生产国家和签署者的网络。

UIQ平台

IMSI序号可以同过Ericsson P800和 P900 的C++应用程序smartphone从文件 C:\System\data\imsi.txt中读出。

该文件随着SIM卡的改变而自动升级。

某些系统处理需要保持该文件打开,因此文件需要保持在共享模式下打开状态。这个可以通过使用EFileShareReadersOnly标识达到。以下C++代码会读出imsi.txt 中内容并将其显示在屏幕上:
RFs fs;
fs.Connect();
RFile file;

_LIT(KImsiFileName,"C:\\System\\data\\imsi.txt");

TInt res = file.Open(fs,KImsiFileName,
 EFileShareReadersOnly|EFileStreamText);

if(res != KErrNone)
{
 gConsole->Printf(_L("Open failed: %d\n"),res);
}
else
{
 TBuf8<128> buf;
 file.Read(buf);
 file.Close();
 fs.Close();

 TBuf<128> printBuf;
 printBuf.Copy(buf);
 gConsole->Printf(_L("IMSI: "));
 gConsole->Printf(printBuf);  
 gConsole->Printf(_L("\n"));
}

Series 60平台

在Series 60平台上,手机同样可能支持第三版Party Telephony API (这表明着手机不仅基于Nokia 6600还基于v7.0s )。

IMSI可以通过以下代码获得:

CTelephony telephony = CTelephony::NewL();
TRequestStatus status;
CTelephony::TSubscriberIdV1 subscriberId;
CTelephony::TSubscriberIdV1Pckg subscriberIdPckg(subscriberId);
telephony->GetSubscriberId(status, subscriberIdPckg));
User::WaitForRequest(status);
User::LeaveIfError(status);
TPtrC theIMSI(subscriberId.iSubscriberId);

对于UIQ版本的该技巧可以追溯到 sonyericsson.com/site/global/techsupport/tipstrickscode/symbian/p_symbian_0601.jsp">SonyEricsson Developer Site 原贴,而对于 Series 60 可以追溯到Symbian site

此文为开发视界翻译转载者请注明出处否则追究法律责任

相关文章:
没有相关文章