如何删除“;呼叫需要权限,该权限可能会……”;Android Studio中的错误

如何删除“;呼叫需要权限,该权限可能会……”;Android Studio中的错误,android,permissions,warnings,android-6.0-marshmallow,android-permissions,Android,Permissions,Warnings,Android 6.0 Marshmallow,Android Permissions,我的代码 private void continueCall() { Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.parse("tel:" + phoneNoToCall)); startActivity(callIntent); } 以上要求用户是否在运行时授予权限CALL\u PHONE,我已检查为 private void call()

我的代码

private void continueCall() {
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:" + phoneNoToCall));
        startActivity(callIntent);
}
以上要求用户是否在运行时授予权限
CALL\u PHONE
,我已检查为

private void call() {
    if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
        continueCall();
    } else {
        requestCallPermission();
    }
}
Android studio仍然显示错误“呼叫需要权限,可能……”


如何删除此错误?或者至少抑制它。

我想你需要
呼叫特权
权限:

给你打电话

在API级别1中添加

String CALL_PRIVILEGED允许应用程序拨打任何电话号码, 包括紧急电话号码,无需通过拨号用户 用户确认正在进行的呼叫的界面

不供第三方应用程序使用

常量值:“android.permission.CALL\u PRIVILEGED”


可以从多个位置调用方法
continueCall()
。因此,不能保证在
call()中签入权限

因此,您只能通过添加以下内容来抑制错误:

@SuppressWarnings(“MissingPermission”)
您需要将

 Intent callIntent = new Intent(Intent.ACTION_CALL);
 callIntent.setData(Uri.parse("tel:" + phoneNoToCall));
 startActivity(callIntent);
内部if块

private void call() {
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:" + phoneNoToCall));
        startActivity(callIntent);
   } else {
        requestCallPermission();
   }
}

通过单击此处的黄色bulblook来抑制它