我想在打开应用程序时显示我的电话号码,但出现异常提示
The application Telephone has ()stopped unexpectedly. Please try again.
我已经在 list 文件中添加了 Read_Phone_State
权限。
public class Telephone extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View v = new View(this);
v.setTag("The Number is : " + getMyTenDigitsNumber());
setContentView(v);
}
private String getTelephone() {
TelephonyManager tm;
tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
return tm.getLine1Number();
}
private String getMyTenDigitsNumber() {
String s = getTelephone();
return s.substring(3);
}
}
最佳答案
getLine1Number
很可能返回 null,因此您后续的子字符串操作会抛出 NullPointerException
(您应该能够通过 logcat 进行验证)。根据documentation对于该方法,如果数字不可用,它可以返回 null。您的提供商可能没有将电话号码存储在 SIM 卡上,因此在这种情况下,该号码可能无法用于该方法。
关于安卓电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8296265/