[英]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.