2013-05-20 68 views
0

是我使用的是正確的權限:從Android設備獲得的電話號碼

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

這裏是我的代碼:

private String getDevicePhoneNumber() { 
    TelephonyManager mTelephonyMgr; 
    mTelephonyMgr = (TelephonyManager) 
     getSystemService(Context.TELEPHONY_SERVICE); 
    return mTelephonyMgr.getLine1Number(); 
} 

的手機返回拉姆達對我說:空字符串。

有誰知道如何得到這個權利?我需要這個工作爲Android Froyo(2.2)和最多

+0

你沒有做錯什麼,只是,這種方法可能並不總是返回一個電話號碼。 https://developer.android.com/reference/android/telephony/TelephonyManager.html#getLine1Number() – Karakuri

+0

你知道正確的方法嗎? –

+1

您正在使用正確的方法。它並不總是返回一個電話號碼。 – Karakuri

回答

2

這確實是一個問題。沒有任何解決方案可以始終發揮作用。 它不是存儲在所有的SIM卡上,也不能始終從運營商網絡訪問。

在某些國家甚至可能需要物理地址驗證。

電話號碼分配的分配發生在網絡上,並且可以在不更改SIM卡或設備的情況下進行更改(例如,從一個運營商移動到另一個運營商時,如何支持端口工作)。

你最好的辦法是詢問用戶,一樣奇怪的是聽起來..

相關問題