簡體   English   中英

在Android中檢索電話號碼

[英]Retrieve phone Number in android

這是下面的代碼來檢索電話號碼,它能夠在三星4.0.4上獲取它,但是在htc one v mobile上出現錯誤。

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

TextView textDeviceID = (TextView)findViewById(R.id.deviceid);


TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

textDeviceID.setText(getMy10DigitPhoneNumber(telephonyManager));


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

 private String getMy10DigitPhoneNumber(TelephonyManager telephonyManager){
 String s = getMyPhoneNumber();
 return s.substring(0);
 }
}

根據文檔.getLine1Number()返回第1行的電話號碼字符串,例如GSM電話的MSISDN。如果不可用,則返回null。

顯然.getLine1Number()從SIM卡讀取此信息,因此如果操作員設置了MSISDN字段,它將返回您其值,如果他們沒有設置此字段,則返回null。

在您的情況下,您的SIM卡可能沒有由運營商填充的字段。

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

注意:不要忘記在AndroidManifest.xml文件中添加READ_PHONE_STATE權限:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM