我正在尝试使用Android从SIM检索MSISDN,我尝试过使用getLine1Number(),但这只返回存储在我的电话信息或所有者信息部分中的MSISDN,如果这些信息未被存储,Android将返回一个空值。
你知道这附近有什么工作吗?还是有一种方法从SIM编号(getSimSerialNumber())?派生MSISDN?
如往常一样等待一个确切的答案!!)
发布于 2011-12-20 04:59:40
MSISDN (也就是移动电话号码)不是SIM数据,因此您无法检索它。SIM卡具有一个IMSI (International ),它被发送到HLR (归属位置寄存器),负责执行映射MSISDN/IMSI。如果移动电话运营商愿意的话,他们可以将MSISDN存储在SIM卡上,但由于GSM协议并不要求这样做,所以并不需要。
抱歉的!
有关更多信息,请参见本文的讨论获取电话号码和android如何获得MSISDN
编辑:
要获得IMSI号码,
TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String imsi = mTelephonyMgr.getSubscriberId();但是一些手机只返回6位,而不是15位。
根据这篇文章:ids-t446.html
String imei = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI);有关更多信息,请参阅这个问题和类SystemProperties
https://stackoverflow.com/questions/8570945
复制相似问题