前情提要还是没有解决
问题:Neither user 11221 nor current process has android.permission.READ_PHONE_STATE, android.permission.READ_SMS, or android.permission.READ_PHONE_NUMBERS
解决办法:
步骤1:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
步骤2:
// Check if the app has the necessary permissions, and request them if not.
if (checkPermissions()) {
// Permissions are already granted; you can proceed with your code.
TelephonyManager telephonyManager = (TelephonyManager)
getSystemService(TELEPHONY_SERVICE);
if (telephonyManager != null) {
String phoneNumber = telephonyManager.getLine1Number();
phoneNumberTextView.setText("手机号码:" + phoneNumber);
} else {
phoneNumberTextView.setText("无法获取手机号码");
}
} else {
requestPermissions();
}
}
private boolean checkPermissions() {
return ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) == PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_NUMBERS) == PackageManager.PERMISSION_GRANTED;
}
private void requestPermissions() {
ActivityCompat.requestPermissions(this,
new String[]{
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.READ_SMS,
Manifest.permission.READ_PHONE_NUMBERS
},
REQUEST_PHONE_PERMISSIONS);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_PHONE_PERMISSIONS) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permissions granted; you can proceed with your code.
} else {
// Permissions not granted; handle this situation as needed.
}
}
}
}