Flutter安卓垃圾电话识别应用上架Play Store遭拒,求默认权限申请方案
解决方案:Google Play上架来电识别应用权限问题
一、完善默认垃圾电话检测应用的权限与组件配置
除了你已添加的权限,还需在AndroidManifest.xml中补充以下关键配置:
- 添加必要权限:
<uses-permission android:name="android.permission.CALL_PHONE"/> <uses-permission android:name="android.permission.READ_CONTACTS"/> <uses-permission android:name="android.permission.BIND_SCREENING_SERVICE"/> - 在
application标签内声明来电筛选服务:<service android:name=".CallScreeningService" android:permission="android.permission.BIND_SCREENING_SERVICE"> <intent-filter> <action android:name="android.telecom.CallScreeningService"/> </intent-filter> </service> - 添加meta-data标记默认来电筛选服务:
注意:<meta-data android:name="android.telecom.DEFAULT_CALL_SCREENING_SERVICE" android:value=".CallScreeningService"/>CallScreeningService需在Android原生代码中实现,继承自android.telecom.CallScreeningService,处理来电识别的核心逻辑。
二、合规性优化
- 在应用商店描述、应用内权限申请弹窗中,明确告知用户:应用需要设置为默认垃圾电话检测应用才能实现来电识别功能,且仅用于识别来电身份、拦截骚扰电话,不会收集无关隐私数据。
- 隐私政策中需清晰列出每个权限的使用场景,重点说明
READ_PHONE_STATE、READ_CALL_LOG权限仅用于来电信息匹配,避免被判定为过度收集隐私。
三、权限申请流程调整
- 不要一次性申请所有权限,分阶段引导:
- 应用启动时,先申请
READ_PHONE_STATE基础权限; - 用户首次触发来电识别功能时,引导其设置应用为默认来电筛选应用,再申请
READ_CALL_LOG、ANSWER_PHONE_CALLS权限。
- 应用启动时,先申请
- 通过Flutter的MethodChannel调用原生代码,引导用户进入默认应用设置页面(Kotlin示例):
val intent = Intent(TelecomManager.ACTION_CHANGE_DEFAULT_CALL_SCREENING_SERVICE) intent.putExtra(TelecomManager.EXTRA_CALL_SCREENING_SERVICE_COMPONENT_NAME, ComponentName(context, CallScreeningService::class.java)) context.startActivity(intent)
四、申诉要点
若再次被拒,申诉时需明确说明:
- 应用已完整实现
CallScreeningService及对应的权限配置; - 所有权限均为来电识别功能的必要权限,无过度收集或滥用行为;
- 已在应用内及隐私政策中清晰告知用户权限用途及默认应用设置要求。
内容的提问来源于stack exchange,提问作者Mallou
相关产品推荐
相关产品推荐

