2015-04-23 151 views
0

當我想獲得電話號碼時,某些電話返回null。在其他手機中,我收到了電話號碼。當我想獲取電話號碼時,電話返回NULL

這是怎麼發生的?

代碼:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

和:

TelephonyManager tMgr = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); 
String mPhoneNumber = tMgr.getLine1Number(); 
String test3; 
String test2 = ""; 

if(mPhoneNumber.length() > 10) { 
    test3 = "0"+mPhoneNumber.substring(4, 13); 
} 
else { 
    test3 = mPhoneNumber; 
} 
for(int i = 0; i<test3.length(); i++) { 
    if (String.valueOf(test3.charAt(i)).equals("-") || String.valueOf(test3.charAt(i)).equals(" ")) { 
    } 
    else { 
     test2 += String.valueOf(test3.charAt(i)); 
    } 
} 

test2的不返回任何東西。

+1

存儲的號碼'getLine1Number' FTO嘗試取從SIM的MSISDN,一些運營商也不會預先填充此。 –

回答

0

您還需要

<uses-permission android:name="android.permission.READ_CONTACTS" /> 

而且,它依賴於SIM卡上。手機可能沒有號碼。通常,您會收到關於設備>狀態>我的電話號碼中的電話號碼。

+0

嘿,我檢查了它,當設置 - >關於電話 - >狀態 - >我的電話號碼是空的,它發生了。它寫「未知」。 怎麼辦? – Ron

+0

我不知道爲什麼這是空的,我的舊手機有同樣的問題,但我相信你將無法以編程方式修復它。 – Catalina

1

並非所有SIM卡都存儲電話號碼,因此無法在所有電話上檢索。

您可以要求用戶手動輸入(並使用短信確認),如果每次真的需要它。

您可以檢查,看看是否您的SIM通過檢查Settings -> About Phone -> Status -> My phone number

+0

嘿,我檢查了它,它發生在設置 - >關於手機 - >狀態 - >我的電話號碼爲空。它寫入「未知」。 怎麼辦? – Ron

+0

@Ron你無能爲力。這是一個運營商問題 –