首页 > 解决方案 > 以编程方式检索手机号码?

问题描述

public void get(View view) {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
                != PackageManager.PERMISSION_GRANTED) {
            // Permission is not granted
            phone.setText("Not granted");
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.READ_PHONE_STATE},
                    MY_PERMISSIONS_REQUEST_READ_CONTACTS);

        }
        else {
            phone.setText("Granted");
            TelephonyManager mTelephonyMgr;
            mTelephonyMgr = (TelephonyManager) getSystemService
                    (Context.TELEPHONY_SERVICE);



       String number = mTelephonyMgr.getLine1Number();
        //String number = getMyPhoneNO();
        if (number.matches("")) {
            phone.setText("There is no number");
        }
        else {
            phone.setText(number);
        }
    }

标签: javaandroid-studio

解决方案


尝试在 AndroidManifest.xml 中提及读取手机状态所需的权限

例如。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

这将授予您的应用程序可以读取您的 android 手机状态的权限


推荐阅读