DelphiXE5如何获取Android手机SIM卡串号

手机号不是存在SIM卡上的,SIM卡只有一个串号.
在运营商的服务器上有手机号和序号对应的一张表.所以你SIM卡办理遗失,运营商只要把新SIM卡的串号和你原来的手机号绑定即可.

获取手机号的唯一办法是收个短信,短信里面有你的手机号码.所以很多程序为了获取手机号会要求你注册时发短信,然后它给你回个短信.

uses
   Androidapi . JNI . GraphicsContentViewText, Androidapi . JNIBridge,
   Androidapi . JNI . Telephony, Androidapi . JNI . JavaTypes, FMX . Helpers . Android;
 
var
   TelephonyManager: JTelephonyManager;
   TelephonyServiceNative: JObject;
begin
   TelephonyServiceNative := SharedActivityContext . getSystemService
     (TJContext . JavaClass . TELEPHONY_SERVICE);
   if Assigned(TelephonyServiceNative) then
     TelephonyManager := TJTelephonyManager . Wrap
       ((TelephonyServiceNative as ILocalObject).GetObjectID);
   //TelephonyManager.getDeviceId 取IMEI
   //TelephonyManager.getLine1Number 取MSISDN  手机号,大部分SIM卡中不会写入这个信息
   //TelephonyManager.getSimSerialNumber 取ICCID
   //TelephonyManager.getSubscriberId 取IMSI  运营商实际上是用这个查询的他那张对应电话号码的表
   //还有很多方法,具体请查看JTelephonyManager的声明
end ;
 

你可能感兴趣的:(android)