2011-11-23 44 views
3

我正在編程Android 2.2中的應用程序。 我試圖讓Android中我的手機號碼,但不能... 如下,這是我獲取電話號碼代碼:(適用於應用設備 - 三星Galaxy加)如何獲取Android 2.2中的我的電話號碼

public static String getMyPhoneNumber(Context aContext){ 
    TelephonyManager mTelephonyMgr; 
    mTelephonyMgr = (TelephonyManager) aContext 
      .getSystemService(Context.TELEPHONY_SERVICE); 
    return mTelephonyMgr.getLine1Number(); 
} 

String phone = getMyPhoneNumber(getApplicationContext());// return "" in here 

我已經添加了「android.permission.READ_PHONE_STATE」在AndroidManifest.xml 但是當我運行的應用程序,電話是空的...

我不知道爲什麼,但我得到的「G etSimSerialNumber(), getSimOperatorName(),getSimOperator(),......」是確定!

方法「getLine1Number()」總是返回「」值。 如果你知道,請幫助我!

+0

你能看到你的手機號碼在設備下 - 設置>關於手機>狀態>我的電話號碼..?如果你不能,android操作系統不知道你的電話號碼,因此無法給你。 – Joe

+0

謝謝!我會試試 – Tama

+0

http://stackoverflow.com/questions/10465835/how-to-obtain-phone-number-in-android檢查這個線程也 – MKJParekh

回答

0

嘗試使用getSubscriberId()這是手機的IMSI。

+0

我已修復它:))...感謝所有 – Tama

+5

不錯,你解決你的問題..但你的問題是要獲得電話號碼,意思是「聯繫無」右.. ..和答案建議IMSI ..所以我會建議編輯您的問題從電話號碼IMSI。 – MKJParekh

1

檢查您的號碼是否在Settings->About phone->State->Phone number中可見,如果沒有,您將無法獲得它。

它將不會顯示您的電話號碼,直到它被寫入您的手機SIM卡中,所以請嘗試更換SIM卡,以便在更換SIM卡時將手機號碼寫在那裏,以顯示手機號碼。

+0

當我改變到另一張SIM卡,我得到的電話號碼是確定的。爲什麼SIM卡類型有所不同。 – Tama

0

如果你想獲得插入SIM卡的移動電話的電話號碼,例如+ 92xxxxxx,+ 42xxxxxxx,+ 1xxxxxx,那麼只需在應用程序中複製此代碼即可。

TelephonyManager phn_mngr = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); 
String PhnNo= phn_mngr.getLine1Number(); 
相關問題