Android R 11 后台定位权限没有 始终允许选项的解决方法

在Android11中,后台定位权限引发了一些问题。应用需要声明ACCESS_BACKGROUND_LOCATION权限,并通过自定义对话框引导用户到设置页面授权。解决方案包括在ManiFest.xml中添加后台定位权限声明,并在代码中请求该权限,随后引导用户手动开启'始终允许'选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在接入百度定位SDK 时,看到文档上说要注意android 11的权限相关问题,果然是个坑,在Android 10 11 上都出现一些问题,本文记录解决 android 11 定位权限问题的方法

申请不了后台定位

android 11 有不同的定位策略,前台权限和后台权限:

这里有2种场景,第一种情况是当仅请求前台权限,在这种情况下,我们通常使用ACCESS_FINE_LOCATION 或者ACCESS_COARSE_LOCATION, 但是,请求授权的弹窗和以前的略有不同,在Android 11 中,Google 增加了一个可选项 允许本次
请注意,即使将ACCESS_BACKGROUND_LOCATION添加到要请求的权限列表中,系统也将忽略它。

第二种情况是:应用也需要后台权限,为此,你必须准备自己的对话框,并使用明确的消息来说明后台位置的使用。

当用户同意后,将他引导到应用设置页面,那里可以选择他想授予的权限等级。


显然问题是出现在了后台权限上

去系统设置页检查权限的时候:
这是我的DEMO:
只有三个选项!
这是高德地图:请添加图片描述
可以看到,高德地图比我的DEMO 多了一个始终允许。

解决方法

第一步: ManiFest.xml 中声明后台定位权限!!!
  <!-- Android 11 必须加后台定位权限,否则不会出现始终允许-->
   
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
第二步:java 代码请求后台定位权限
 if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.R)
            requestPermission.launch(Manifest.permission.ACCESS_BACKGROUND_LOCATION);
            // 注意,不会有系统弹框,需要我们自己写代码,让用户跳转到设置页面去选择

此时就会有 始终允许 的选项了!

Android中,后台定位可以受到手机厂商的电池优化等限制。根据引用中提到的方法,可以通过更改定位权限解决后台定位问题。其中,选择"无限制"选项可以确保在后台和锁屏时进行准确的定位。另外,引用中提到的使用前台服务也可以实现持续定位,前台服务可以通过将服务与通知关联起来的方式来保持活动状态。这样做可以确保即使应用在后台运行或手机锁屏时,定位日志仍然会打印。然而,需要注意的是,在长时间后台挂起或者锁屏后,第三方定位服务(如百度、高德)可能会出现严重的定位偏差,即定位的坐标会发生变化。这个问题可以在引用中的百度和高德开发文档中找到相关的资料。总之,Android后台定位受到了Google对后台服务管控的限制,为了保护用户隐私,大多数应用只在前台运行时获取用户位置。因此,要实现后台持续定位,需要在用户主动授权位置信息后使用合适的方法解决这个问题。123 #### 引用[.reference_title] - *1* *2* [【Android 后台持续定位】](https://blog.csdn.net/da_caoyuan/article/details/129007749)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [App切换到后台后如何保持持续定位?](https://blog.csdn.net/HUAWEI_HMSCore/article/details/126378700)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值