2014-02-12 58 views
3

我試了下面的代碼來得到我自己的號碼並得到一個NULL字符串。問題是什麼?如何在Android中以編程方式獲取自己的電話號碼?

TelephonyManager mTelephonyMgr;  
mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);  
String phoneNumber = mTelephonyMgr.getLine1Number(); 

權限

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

http://stackoverflow.com/questions/5134398/telepho nymanager-getline1number-failing/5134725#5134725/ –

回答

0

添加到您的清單

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

需要用戶來獲取這些數據

如果仍然返回null許可,這意味着數據不可用,並且您不能使用它。

Get my phone number in android

+0

我已經添加了權限,但仍然出現同樣的問題 – Burro

+0

編輯我的答案 –

3

使用TelephonyManager.getLine1Number()

但是你需要有存儲沒有其他的辦法讓你「自己的號碼」 SIM卡,並there's上的電話號碼。

例子:

TelephonyManager tm = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); 
String myPhoneNumber = tm.getLine1Number(); 

,你需要這個權限到您的Manifest.xml

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

看到這個問題: TelephonyManager.getLine1Number() failing? 的描述,你需要評估:

if("SIM card present" && "phone number is stored") { 
    "get the phone number with TelephonyManager.getLine1Number" 
} 
相關問題