如何让安卓应用GPS权限申请弹窗显示「始终允许」选项
安卓定位权限弹窗显示「始终允许」选项实现方法
核心适配要求
- 系统版本限制:只有运行 Android 11(API等级30)及以上 的设备,才支持在系统权限申请弹窗中直接展示「始终允许」选项;Android 10及更低版本无法在弹窗中展示该选项,只能引导用户手动进入应用设置页开启后台定位权限。
- 权限申请顺序要求:
不能直接申请后台定位权限,必须遵循「先申请前台定位权限→用户授权后再申请后台定位权限」的顺序:- 第一步先申请
ACCESS_FINE_LOCATION(精确定位)或ACCESS_COARSE_LOCATION(粗略定位)权限 - 用户同意前台定位权限后,再发起
ACCESS_BACKGROUND_LOCATION权限申请,此时弹出的系统弹窗就会包含「始终允许」选项。
- 第一步先申请
Manifest配置检查
除了你已经添加的后台定位权限,还要确保已经补充前台定位权限声明,完整配置如下:
<!-- 根据定位精度需求选择添加对应前台定位权限 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 后台定位权限,Android 10及以上版本需要 --> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
效果参考
现有应用设置页的「始终允许」选项:
实现后权限弹窗效果:
额外注意事项
- 申请后台定位权限前,要提前向用户明确说明申请该权限的用途,以及对应功能场景,避免被系统判定为违规申请,影响应用上架。
- 如果用户第一次拒绝了后台定位权限,后续再次申请时系统不会再弹出权限弹窗,此时需要引导用户跳转至应用设置页手动开启权限。
内容的提问来源于stack exchange,提问作者Curious Developer
相关产品推荐
相关产品推荐

