Вы уверены, что контекст не нулевой?Вы должны сделать что-то вроде этого.В своей вызывающей деятельности внесите эти изменения
private static final int REQUEST_CALL_PHONE_PERMISSION = 100;
if( isCallPhonePermissionGranted() ){
call("<Number>");
} else {
call("<Number>");
}
private void requestCallPermission () {final String [] permissions = new String [] {Manifest.permission.CALL_PHONE};ActivityCompat.requestPermissions (this, permissions, 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" />