Java 如何以编程方式获取电话号码?

Java 如何以编程方式获取电话号码?,java,android,Java,Android,我想通过编程在Android Studio中获取电话号码。 我试过这个:(而且它会导致崩溃) 怎么了?是否有其他方式获取电话号码?您需要添加 manifest+请求对较新android版本的运行时权限。 否则,您可以在stacktrace中看到解释错误。我认为您需要 与 在活动/片段中 @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResul

我想通过编程在Android Studio中获取电话号码。 我试过这个:(而且它会导致崩溃)

怎么了?是否有其他方式获取电话号码?

您需要添加
manifest+请求对较新android版本的运行时权限。

否则,您可以在stacktrace中看到解释错误。

我认为您需要

在活动/片段中

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    if (requestCode == MY_PERMISSIONS_REQUEST_READ_PHONE_STATE) {
        if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            String phoneNumber = getMyPhoneNO();
        }
    }
}

检查此项,请发布带有错误的日志
if (ContextCompat.checkSelfPermission(thisActivity,
    Manifest.permission.READ_PHONE_STATE)
            != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(thisActivity,
            new String[]{Manifest.permission.READ_PHONE_STATE},
            MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
}
private String getMyPhoneNO() {
    TelephonyManager tMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String mPhoneNumber = tMgr.getLine1Number();
    return mPhoneNumber;
}
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.READ_PHONE_STATE)
                != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this,
                new String[]{Manifest.permission.READ_PHONE_STATE},
                MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
    } else {
        String phoneNumber = getMyPhoneNO();
    }
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    if (requestCode == MY_PERMISSIONS_REQUEST_READ_PHONE_STATE) {
        if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            String phoneNumber = getMyPhoneNO();
        }
    }
}