你确定 context 不是 null 吗?你应该做这样的事情。在您的呼叫活动中进行这些更改
private static final int REQUEST_CALL_PHONE_PERMISSION = 100;
if( isCallPhonePermissionGranted() ){
call("<Number>");
} else {
call("<Number>");
}
private void requestCallPermission() { final String[] 权限 = new String[]{Manifest.permission.CALL_PHONE}; ActivityCompat.requestPermissions(这个,权限,REQUEST_CALL_PHONE_PERMISSION);}
private boolean isCallPhonePermissionGranted() {
return ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE)
== PackageManager.PERMISSION_GRANTED;
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[]
permissions, @NonNull int[] grantResults) {
if (requestCode != REQUEST_CALL_PHONE_PERMISSION) {
super.onRequestPermissionsResult(requestCode, permissions,
grantResults);
return;
}
if (grantResults.length != 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED) {
call("<Number>");
return;
}
}
public void call(String number){
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+number));
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(callIntent);
}
最后将此权限添加到 Android Manifest.xml
<uses-permission android:name="android.permission.CALL_PHONE" />