安装react-native-callkeep后出现BIND_TELECOM_CONNECTION_SERVICE权限错误
解决react-native-callkeep安装后的权限错误
问题现象
执行npm i react-native-callkeep安装后,运行时触发如下错误:
PhoneAccount连接服务需要BIND_TELECOM_CONNECTION_SERVICE权限。远程堆栈跟踪:at
com.android.server.telecom.PhoneAccountRegistrar.registerPhoneAccount(PhoneAccountRegistrar.java:823) at
com.android.server.telecom.TelecomServiceImpl$1.registerPhoneAccount(TelecomServiceImpl.java:576) at
com.android.internal.telecom.ITelecomService$Stub.onTransact(ITelecomService.java:958) at
android.os.Binder.execTransactInternal(Binder.java:1190) at
android.os.Binder.execTransact(Binder.java:1159)

解决步骤
- 在Android项目的
AndroidManifest.xml文件中添加权限声明:
<uses-permission android:name="android.permission.BIND_TELECOM_CONNECTION_SERVICE" />
- 针对Android 10及以上版本,需额外动态申请必要权限,可在代码中加入:
import { PermissionsAndroid } from 'react-native'; async function requestCallPermissions() { const permissionStatus = await PermissionsAndroid.requestMultiple([ PermissionsAndroid.PERMISSIONS.READ_PHONE_STATE, PermissionsAndroid.PERMISSIONS.CALL_PHONE, ]); if (permissionStatus['android.permission.READ_PHONE_STATE'] === PermissionsAndroid.RESULTS.GRANTED && permissionStatus['android.permission.CALL_PHONE'] === PermissionsAndroid.RESULTS.GRANTED) { console.log('所需权限已获取'); } else { console.log('权限被拒绝,部分功能将无法使用'); } }
- 重新编译运行项目即可解决该错误。
内容的提问来源于stack exchange,提问作者Mohd. Anas Siddiqui
相关产品推荐
相关产品推荐

