2011-12-20 199 views
11

我試圖從SIM卡使用Android獲取MSISDN,我試過getLine1Number()但這隻返回存儲在我的電話信息或所有者信息部分中的MSISDN,如果這些info不存儲,Android將返回空值。從SIM卡使用Android獲取MSISDN

你知道這件事嗎?或者是否有辦法從SIM號碼(getSimSerialNumber())派生MSISDN?

等待一個堅實的答案一如既往! :)

回答

20

MSISDN(又名手機號碼)不是SIM數據,因此您無法檢索它。 SIM卡具有發送給HLR(歸屬位置寄存器)的IMSI(國際移動用戶標識符),負責執行映射MSISDN/IMSI。 如果移動電話運營商想要,他們可以將SIM卡存儲在SIM卡上,但由於它不是GSM協議所要求的,它不是。

對不起!

欲瞭解更多信息看看這個討論Getting phone numberHow android get MSISDN

編輯:

要得到IMSI號碼,

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

但也有少數手機只返回,而不是15 6位數字。所以,你可以使用,

根據這篇文章: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

+0

是的,我發現了太多...但我如何檢索使用Andoid從SIM卡的IMSI?有任何想法嗎? – megazoid

相關問題