我的代码
private void continueCall() {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + phoneNoToCall));
startActivity(callIntent);
}
以上要求用户在运行时授予权限CALL_PHONE
,我已将其检查为
private void call() {
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
continueCall();
} else {
requestCallPermission();
}
}
仍然Android工作室显示错误“来电需要获得许可......”
如何删除此错误?或者至少压制它。
答案 0 :(得分:4)
可以从多个地方调用方法continueCall()
。因此,无法保证在call()
因此,您只能通过添加以下内容来抑制错误:
@SuppressWarnings("MissingPermission")
答案 1 :(得分:1)
你需要把
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();
}
}
答案 2 :(得分:0)
我认为您需要CALL_PRIVILEGED
权限:
CALL_PRIVILEGED
在API级别1中添加
String CALL_PRIVILEGED允许应用程序拨打任何电话号码, 包括紧急号码,无需通过拨号用户 用户确认正在进行呼叫的界面。
不适用于第三方应用程序。
常量值:“android.permission.CALL_PRIVILEGED”