Play商店以未遵守权限政策拒登App 未用后台定位仍被拒原因问询
未使用后台定位仍被拒登的常见原因及对应解决方案
核心原因
- API 30+ 动态申请逻辑触发判定
Android 11(API 30)开始,即使你没有在Manifest中声明ACCESS_BACKGROUND_LOCATION权限,只要你动态申请定位权限时弹出的系统授权窗口包含「始终允许」选项,Play商店的静态扫描逻辑就会判定你的应用具备申请后台定位的能力。如果你的权限声明表没有对应说明,就会被判定违规。 - 第三方SDK隐含后台定位逻辑
你自身业务代码没有后台定位逻辑,不代表引入的第三方SDK(广告、统计、地图、推送类SDK概率最高)没有隐含的后台定位调用逻辑,也可能是第三方SDK在打包时自动向Manifest插入了ACCESS_BACKGROUND_LOCATION权限声明,触发扫描判定。 - 定位停止逻辑存在漏洞
仅在Activity的onStop()中停止定位存在覆盖不全的场景:比如应用被切后台时触发系统内存回收导致onStop()未执行、多Activity跳转时序导致短时间后台定位间隙、FusedLocationProvider.removeLocationUpdates()传入的callback/ pendingIntent和申请时的实例不一致导致停止失败,都会被检测到存在后台定位的可能性。 - 权限声明表填写不规范
即使你确实仅使用前台定位,如果在Play Console的权限声明表中没有明确勾选「仅前台使用定位」,或者定位场景描述模糊,审核人员也会误判你需要声明后台定位权限。
修复建议
- 调整动态权限申请逻辑:API 30+ 不要申请
ACCESS_BACKGROUND_LOCATION权限,确保授权弹窗仅出现「仅在使用该应用时允许」「拒绝」两个选项,移除所有和后台定位权限相关的代码(包括注释内容),避免静态扫描误判。 - 排查第三方SDK问题:用Android Studio的APK Analyzer打开正式打包的APK,检查最终合并的Manifest文件是否存在
ACCESS_BACKGROUND_LOCATION声明,如果有,在项目Manifest中添加<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove" />强制移除该权限,同时核对第三方SDK的文档,关闭其后台定位相关开关。 - 补全定位停止逻辑:除了Activity的
onStop(),额外在Application的onTrimMemory()回调中监听应用退后台事件,强制停止所有定位请求,确认FusedLocationProvider申请和停止定位时使用的是同一个全局LocationCallback实例,避免停止失败。 - 重新提交权限声明:在Play Console的权限声明表中明确勾选「我的应用仅在前台使用定位」,详细描述定位使用场景,比如「用户打开应用内的周边查询页面时,在前台获取位置展示附近商户,应用退后台后立即停止定位,不存在后台获取位置的逻辑」,场景描述越具体越容易通过审核。
内容的提问来源于stack exchange,提问作者Ramachandra Reddy Avula
相关产品推荐
相关产品推荐

