11

我正在尝试使用 Android 从 SIM 中检索 MSISDN,我尝试过getLine1Number()但这仅返回存储在我的电话信息或所有者信息部分中的 MSISDN,如果未存储这些信息,Android 将返回一个空值。

你知道这有什么解决方法吗?或者有没有办法从 SIM 号码(getSimSerialNumber())中导出 MSISDN?

一如既往地等待一个可靠的答案!:)

4

1 回答 1

20

MSISDN(又名手机号码)不是 SIM 卡数据,因此您无法检索它。SIM 卡有一个 IMSI(国际移动用户身份),它被发送到负责映射MSISDN/IMSI的 HLR(归属位置寄存器) 。如果移动电话运营商愿意,他们可以将 MSISDN 存储在 SIM 卡上,但由于 GSM 协议不需要它,因此不需要。

对不起!

有关更多信息,请查看此讨论获取电话号码如何 android 获取 MSISDN

编辑:

要获取 IMSI 号码,

 TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
 String imsi = mTelephonyMgr.getSubscriberId();

但是一些手机只返回 6 位而不是 15 位。所以,你可以使用,

根据这篇文章:http ://www.anddev.org/tinytut__-_getting_the_imsi_-_imei_sim-device_unique_ids-t446.html

String imei = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI);

有关更多信息,请查看This Question类 SystemProperties

于 2011-12-20T04:59:40.187 回答