java.lang.SecurityException: Neither user 10229 nor current process has android.permission.ANSWER_PHONE_CALLS.
时间: 2023-12-24 16:05:27 浏览: 181
jboss7.1.1下报java.lang.SecurityException: JCE cannot authenticate the provider BC
这个异常表示当前应用程序没有 `android.permission.ANSWER_PHONE_CALLS` 权限。在 Android 8.0 及以上的版本中,只有拥有该权限的应用程序才能接听和拒绝来电。
要解决这个问题,可以在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS" />
```
同时,在应用程序中还需要动态请求该权限。可以使用以下代码请求该权限:
```java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ANSWER_PHONE_CALLS) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ANSWER_PHONE_CALLS}, REQUEST_CODE_ANSWER_PHONE_CALLS);
}
}
```
其中,`REQUEST_CODE_ANSWER_PHONE_CALLS` 是一个自定义的请求码,用于在权限请求结果返回时进行判断。需要注意的是,应用程序需要在运行时请求该权限,并且用户需要在权限请求对话框中授权才能接听和拒绝来电。
阅读全文