我正在尝试使用 Android 从 SIM 中检索 MSISDN,我尝试过getLine1Number()但这仅返回存储在我的电话信息或所有者信息部分中的 MSISDN,如果未存储这些信息,Android 将返回一个空值。
你知道这有什么解决方法吗?或者有没有办法从 SIM 号码(getSimSerialNumber())中导出 MSISDN?
一如既往地等待一个可靠的答案!:)
我正在尝试使用 Android 从 SIM 中检索 MSISDN,我尝试过getLine1Number()但这仅返回存储在我的电话信息或所有者信息部分中的 MSISDN,如果未存储这些信息,Android 将返回一个空值。
你知道这有什么解决方法吗?或者有没有办法从 SIM 号码(getSimSerialNumber())中导出 MSISDN?
一如既往地等待一个可靠的答案!:)
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