2013-03-18 152 views
-1

我試圖獲得當前手機號碼的電話號碼,我用這個代碼(我已經在清單權限):獲得當前手機

TelephonyManager mTelephonyMgr;  
mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);  

String phoneNumber = mTelephonyMgr.getLine1Number(); 

我想這代碼在Android模擬器,它工作正常,並給我一個數字(我想這是模擬器的電話號碼),

然而,當我在手機上(星系s2)嘗試此代碼時,它返回一個空字符串。

感謝

+1

試試這個答案:http://stackoverflow.com/a/6420783/794088 – petey 2013-03-18 16:11:36

+0

-1這個問題已被問了大約一百萬次在這裏。 – 2013-03-18 16:16:53

回答

1

getLine1Number()不保證返回的電話號碼。它只適用於設備中的SIM卡上存儲有號碼。

您可以通過轉到Settings -> About -> Status並查看電話號碼是否可用,檢查它是否成功。如果不是,那麼您的運營商不守號的SIM卡上

+0

當號碼不存儲在SIM卡中時,還有另一種獲取電話號碼的方法嗎? – 2013-03-18 16:28:12

+0

@AdirRahamim不要求用戶輸入它,不。 – 2013-03-18 16:28:39

+0

嗨,那麼whatsapp android如何獲取我的電話號碼? – 2013-03-19 15:14:27

0

來源:Reading device phone number throws NULLPointerException

在印度的一些操作,返回此電話號碼是存儲在SIM卡的MSISDN,這沒有被一些運營商填補。所以它返回空嘗試與其他SIM卡。

documentation對於getLine1Number()表示如果數字「不可用」,但此方法將不返回數字可能不可用時返回null。

+0

有沒有另一種方式來獲得電話號碼時,號碼不存儲在SIM卡? – 2013-03-18 16:28:32

+0

@AdirRahamim你可以得到僅存儲的數字。您可以要求用戶輸入號碼 – 2013-03-18 16:29:53

相關問題