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
此文为开发视界翻译转载者请注明出处否则追究法律责任 |