2012-02-28 25 views
1

我在開發應用程序時需要電話號碼。所以,我用TelephonyManager,如下圖所示:TelephonyManager不在每臺設備上提供電話號碼

TelephonyManager tmgr =(TelephonyManager)getApplicationContext().getSystemService(getApplicationContext().TELEPHONY_SERVICE); 
Log.d("Tag", tmgr.getLine1Number()); 

但是,當我試圖在不同的設備上的應用程序,不知何故getLine1Number()不工作。我的意思是回報NULL

權限沒問題。最後,getLine1Number()取決於其他要求?是否有可能在每臺設備上學習電話號碼。

感謝您的建議。

回答

3

無法在每臺設備上獲取電話號碼,因爲這取決於如何製作SIM卡。這是一個SIM卡限制。

+0

首先,謝謝你gabi。你能給我更多關於這個狀態的細節嗎? – 2012-02-28 15:40:20

+3

由於電話號碼並非物理存儲在所有SIM卡上,或從網絡廣播到手機,因此無法保證解決此問題。在一些需要物理地址驗證的國家尤其如此,號碼分配僅在事後進行。電話號碼分配發生在網絡上 - 可以在不更改SIM卡或設備的情況下進行更改(例如,這是如何支持移植)。 我知道這很痛苦,但最有可能的最佳解決方案就是要求用戶輸入一次他/她的電話號碼並存儲它。 – 2012-02-28 15:43:49

+0

這是一個來自問題的答案http://stackoverflow.com/questions/2480288/get-phone-number-in-android-sdk – 2012-02-28 15:44:19