Google Play发布READ_CALL_LOG权限问题:设为默认拨号器仍遭拒
解决默认拨号器因READ_CALL_LOG权限被Google Play拒审的问题
确认权限声明的条件性
在AndroidManifest.xml中,确保READ_CALL_LOG权限声明带有条件限制,避免无条件请求:<uses-permission android:name="android.permission.READ_CALL_LOG" android:required="false" />针对Android 10及以上版本,还可结合
android:permissionFlags="hardRestricted",明确该权限仅在应用成为默认拨号器时可用。严格控制权限请求时机
必须在用户明确将应用设置为默认拨号器之后,再发起READ_CALL_LOG权限请求,且请求前需清晰告知用户权限的具体用途(比如“读取通话记录以展示历史通话列表”),绝对不能在应用启动或成为默认拨号器前请求该权限。完善权限必要性说明
在Google Play Console的权限声明板块,详细填写READ_CALL_LOG权限的使用场景,要具体到默认拨号器的核心功能:- 用于展示用户历史通话记录,支持快速回拨操作
- 用于识别来电号码,匹配联系人信息并展示详情
避免模糊描述,让审核团队明确该权限是默认拨号器功能不可或缺的一部分。
排查第三方依赖的冗余权限
执行gradlew app:dependencies命令检查项目依赖树,确认是否有第三方SDK(如通话分析、统计工具)偷偷添加了READ_CALL_LOG权限。如果存在,联系SDK提供商移除该权限,或通过tools:node="remove"在Manifest中手动剔除:<uses-permission android:name="android.permission.READ_CALL_LOG" tools:node="remove" />验证权限使用的合规性
在测试设备上将应用设为默认拨号器后,使用Android Studio的App Inspection工具监控权限调用,确保READ_CALL_LOG仅在必要的功能场景下被触发,不存在后台静默读取的行为。提交审核时补充说明
在提交审核的备注中,明确告知审核团队:- 应用仅在成为默认拨号器后才会请求并使用
READ_CALL_LOG权限 - 已严格限制权限的使用范围,仅服务于默认拨号器的核心功能
可附上功能演示截图或短视频,直观展示权限的实际使用场景。
- 应用仅在成为默认拨号器后才会请求并使用
内容的提问来源于stack exchange,提问作者Awais Khan
相关产品推荐
相关产品推荐

