我想在打开应用程序时显示我的电话号码,但我得到一个例外
应用程序电话有()意外停止。请再试一次。
我已在清单文件中添加了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);
}
}
答案 0 :(得分:1)
getLine1Number
可能返回null,因此您的后续子字符串操作会抛出NullPointerException
(您应该能够通过logcat验证)。根据方法的documentation,如果数字不可用,它可以返回null。您的提供商可能没有在SIM卡上存储电话号码,因此,在这种情况下,该号码可能无法使用该号码。
答案 1 :(得分:0)
getLine1Number()可能返回null,因此您的子字符串操作会抛出NPE。 getLine1Number()在号码不可用时返回null,例如没有插入SIM卡,或者SIM卡上没有存储号码。您可以转到设置 - >来查看号码是否可用。关于手机 - >状态并检查您的号码是否显示在我的电话号码字段中。