使用Android从SIM卡获取MSISDN

时间:2011-12-20 04:49:37

标签: android mobile eclipse-plugin msisdn

我正在尝试使用Android从SIM中检索MSISDN,我尝试过 getLine1Number(),但这只返回存储在“我的手机信息”或“所有者信息”部分中的MSISDN,如果这些信息是未存储,Android将返回空值。

你知道从中有什么工作吗?或者有没有办法从SIM号码中获取MSISDN( getSimSerialNumber())?

一如既往地等待坚实的答案! :)

1 个答案:

答案 0 :(得分:20)

MSISDN (也称为手机号码)不是SIM数据,因此您无法检索它。 SIM卡具有IMSI(国际移动子用户标识),其被发送到HLR(归属位置寄存器),负责进行映射 MSISDN / IMSI 。 移动电话运营商可以根据需要将MSISDN存储在SIM卡上,但由于GSM协议中不需要它,因此不是。

抱歉!

有关详细信息,请查看此讨论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 Questionclass SystemProperties