安卓电话号码

标签 android gsm phone-number

我想在打开应用程序时显示我的电话号码,但出现异常提示

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/

相关文章:

php - 当 php 语句结果文件 = 1 时更新表

windows - 使用php在windows上通信串口

android - 使用联系人选择器时从具有多个号码的用户中选择一个号码

android - Android上如何查询ContactsContract.CommonDataKinds.Phone?

java - 我想在java中使用gsm调制解调器通过串行端口发送和接收短信

api - 访问 PayPay 的电话验证?

android - 在android中显示的心脏动画

android - 如果服务器响应不是 200 ok,则空指针异常

java - 使用集合而不是类

Java 使用 gsm 调制解调器发送短信时出错