android电话号码

时间:2011-11-28 13:11:17

标签: android gsm phone-number

我想在打开应用程序时显示我的电话号码,但我得到一个例外

  

应用程序电话有()意外停止。请再试一次。

我已在清单文件中添加了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);
    }
}

2 个答案:

答案 0 :(得分:1)

getLine1Number可能返回null,因此您的后续子字符串操作会抛出NullPointerException(您应该能够通过logcat验证)。根据方法的documentation,如果数字不可用,它可以返回null。您的提供商可能没有在SIM卡上存储电话号码,因此,在这种情况下,该号码可能无法使用该号码。

答案 1 :(得分:0)

getLine1Number()可能返回null,因此您的子字符串操作会抛出NPE。 getLine1Number()在号码不可用时返回null,例如没有插入SIM卡,或者SIM卡上没有存储号码。您可以转到设置 - >来查看号码是否可用。关于手机 - >状态并检查您的号码是否显示在我的电话号码字段中。