当我想获取电话号码时,有些手机会返回null
。在其他手机中,我会收到电话号码。
为什么会这样?
代码:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
和
TelephonyManager tMgr = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();
String test3;
String test2 = "";
if(mPhoneNumber.length() > 10) {
test3 = "0"+mPhoneNumber.substring(4, 13);
}
else {
test3 = mPhoneNumber;
}
for(int i = 0; i<test3.length(); i++) {
if (String.valueOf(test3.charAt(i)).equals("-") || String.valueOf(test3.charAt(i)).equals(" ")) {
}
else {
test2 += String.valueOf(test3.charAt(i));
}
}
test2不会返回任何内容。
答案 0 :(得分:1)
并非所有SIM卡都存储电话号码,因此无法在所有手机上检索。
如果您确实需要,可以让用户手动输入(并使用短信确认)。
您可以通过查看Settings -> About Phone -> Status -> My phone number
答案 1 :(得分:0)
您还需要
<uses-permission android:name="android.permission.READ_CONTACTS" />
此外,它取决于SIM卡。手机可能没有号码。通常,您会获得关于设备&gt;状态&gt;我的电话号码的电话号码。