我正在尝试使用 Android 从 SIM 卡中检索 MSISDN,我已经尝试过 getLine1Number() 但这只会返回存储在“我的手机信息”或“所有者信息”部分中的 MSISDN,如果这些信息是未存储,Android 将返回空值。
你知道有什么解决方法吗?或者有没有办法从 SIM 卡号码 (getSimSerialNumber()) 导出 MSISDN?
一如既往地等待可靠的答复!!! :)
最佳答案
MSISDN(又名手机号码)不是 SIM 数据,因此您无法检索它。 SIM 卡有一个 IMSI(国际移动用户身份),它被发送到负责映射 MSISDN/IMSI 的 HLR(归属位置寄存器)。 如果移动电话运营商愿意,他们可以将 MSISDN 存储在 SIM 卡上,但由于 GSM 协议(protocol)不需要它,因此不需要。
对不起!
有关更多信息,请查看此讨论 Getting phone number 还有How android get 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和 class SystemProperties
关于android - 使用 Android 从 SIM 卡获取 MSISDN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8570945/