您现在的位置是:首页 > 数码 > 

高德后台定位注意事项

2025-07-26 09:19:26
高德后台定位注意事项 一、 定位权限 除了粗略定位权限和精准定位权限 <uses-permission android:name=android.permission.ACCESS_COARSE_LOCATIO /> <uses-permission android:name=android.permission.ACC

高德后台定位注意事项

一、 定位权限

除了粗略定位权限和精准定位权限

<uses-permission android:name=android.permission.ACCESS_COARSE_LOCATIO />
<uses-permission android:name=android.permission.ACCESS_FIE_LOCATIO />

注意添加后台定位权限

<uses-permission android:name=android.permission.ACCESS_BACKGROUD_LOCATIO />

二、 调用高德开启后台定位

AMapLocationClient locationClient = new AMapLocationClient(context.getApplicationContext());// 开启后台定位
(id, notification);

原理为使用一个通知来调起后台定位,如下为通知的创建
java版本

private static final String              OTIFICATIO_CHAEL_AME = 自定义;
private              otificationManager notificationManager       = null;
boolean isCreateChannel = false;@SuppressLint(ewApi)
private otification buildotification() {otification.Builder builder      = null;otification         notification = null;if (Build.VERSIO.SDK_IT >= 26) {//Android O上对otification进行了修改,如果设置的targetSDKVersion>=26建议使用此种方式创建通知栏if (null == notificationManager) {notificationManager = (otificationManager) getSystemService(Context.OTIFICATIO_SERVICE);}String channelId = getPackageame();if (!isCreateChannel) {otificationChannel notificationChannel = new otificationChannel(channelId,OTIFICATIO_CHAEL_AME, otificationManager.IMPORTACE_DEFAULT);(true);//是否在桌面icon右上角展示小圆点notificationChannel.setLightColor(Color.BLUE); //小圆点颜notificationChannel.setShowBadge(true); //是否在久按桌面图标时显示此渠道的通知(notificationChannel);isCreateChannel = true;}builder = new otification.Builder(getApplicationContext(), channelId);} else {builder = new otification.Builder(getApplicationContext());}builder.setSmallIcon(zbmap_icon).setContentTitle(自定义).setContentText(自定义).setWhen(());if (Build.VERSIO.SDK_IT >= 16) {notification = builder.build();} else {return builder.getotification();}return notification;
}

kotlin版本

private val OTIFICATIO_CHAEL_AME = 自定义
private var notificationManager: otificationManager? = null
internal var isCreateChannel = false@SuppressLint(ewApi)
private fun buildotification(): otification? {var builder: otification.Builder? = nullvar notification: otification? = nullif (Build.VERSIO.SDK_IT >= 26) {//Android O上对otification进行了修改,如果设置的targetSDKVersion>=26建议使用此种方式创建通知栏if (null == notificationManager) {notificationManager =getSystemService(Context.OTIFICATIO_SERVICE) as otificationManager}val channelId = packageameif (!isCreateChannel) {val notificationChannel = otificationChannel(channelId,OTIFICATIO_CHAEL_AME, otificationManager.IMPORTACE_DEFAULT)(true)//是否在桌面icon右上角展示小圆点notificationChannel.lightColor = Color.BLUE //小圆点颜notificationChannel.setShowBadge(true) //是否在久按桌面图标时显示此渠道的通知notificationManager!!.createotificationChannel(notificationChannel)isCreateChannel = true}builder = otification.Builder(applicationContext, channelId)} else {builder = otification.Builder(applicationContext)}builder.setSmallIcon(ic_app_face).setContentTitle(自定义).setContentText(自定义).setWhen(())if (Build.VERSIO.SDK_IT >= 16) {notification = builder.build()} else {return }return notification
}

三、 高德关闭后台定位

locationClient.disableBackgroundLocation(boolean removeotification);

开启和关闭的时机可以自己在应用内写一个,推荐 这篇文章的第三种方法,也是高德官方定位sdk中使用的方法

四、高德后台定位息屏问题

这里分两种情况:

  1. 息屏不联网
  2. 息屏联网
  3. 息屏联网带0s间隔心跳长链接

为什么只考虑联网不联网,因为使用高德定位是必须打开位置服务的

机型1、 小米9(android 10)息屏定位

息屏定位设置

在设置中搜索 电池与性能,点击右上角 设置 图标,选择 应用智能省点,对自己的应用选择 无限制 即可,总共有四个选项,默认都是 智能限制后台运行,情况就是下面这些:

也可以在 应用设置 —> 应用管理 中到自己的应用,将 省电策略 改为 无限制

如果不设置

情况1会在息屏一段时间(大概一分钟)后报

错误码: 4
错误详情:网络连接异常 请到/
查看错误码说明,错误详细信息:#id:YaDloaGZhYWg0ZjQ0GFmbDhqa2Q5WEmUxMzRkLFh0Q1hKL2lJV1hrREFCYWxmZGxwZXpYLw==
网络异常,未连接到网络,请连接网络#0401

情况2会在息屏一段时间(大概一分钟)后,返回lbs类型的定位信息,并且内容相同,很长时间才会变化且结果精度比较差

出现上述情况应该是息屏后一段时间cpu休眠导致,具体解决可查看高德官方的一个方法

情况还是和情况2一样

机型2、 三星A6s(android 9)息屏定位

息屏定位设置

设置中搜索优化电池使用量,打开后选择所有应用程序,到自己的应用并关闭掉优化

如果不设置

三种情况都会在后台定位一段时候后应用被杀死

机型、 华为P0、Mate0(android 10)息屏定位

息屏定位设置

手机管家 —> 应用启动管理 中到自己的应用,将 手动管理 改为 自动管理,然后在换回 手动管理 ,在弹出的选项中将 允许后台活动 打开

下面是之前做的一些无用尝试:
1.在设置中搜索 电池 —> 更多电池设置 —> 休眠时始终保持网络连接打开 ,这可以保证有网时WebSocket长链接正常;
2.可以开启 电池 —> 性能模式,但这应该无关紧要,只是会更耗电;
.隐私 —> 权限管理,右上角更多选择特殊访问权限 —> 电池优化,选择对自己的应用不允许优化

无用尝试的设置作用都不大,华为如果不开启允许后台活动,充电刺激也能保证息屏时gps定位,可以用充电宝充着电,即使不联网在室外也没问题

如果不设置

三种情况息屏后定位10~0秒后直接停止了,再次解锁后才重新定位。

机型4、 vivo IQOO neo(android 10)息屏定位

息屏定位设置

设置中电池 —> 后台高耗电 中到自己的应用,允许在后台高耗电是继续运行即可

如果不设置

三种情况息屏后定位在2~分钟后停止,再次解锁后才重新定位。

机型5、 oppo R17(android 10)息屏定位

待测试

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/shuma/808469.html

相关标签:无
上传时间: 2024-01-20 06:13:48
留言与评论(共有 11 条评论)
本站网友 广州凤凰山森林公园
7分钟前 发表
机型5
本站网友 张家界房产
29分钟前 发表
三星A6s(android 9)息屏定位 息屏定位设置 设置中搜索优化电池使用量,打开后选择所有应用程序,到自己的应用并关闭掉优化 如果不设置 三种情况都会在后台定位一段时候后应用被杀死 机型
本站网友 4670
13分钟前 发表
name=android.permission.ACCESS_FIE_LOCATIO /> 注意添加后台定位权限 <uses-permission android
本站网友 dulife
29分钟前 发表
YaDloaGZhYWg0ZjQ0GFmbDhqa2Q5WEmUxMzRkLFh0Q1hKL2lJV1hrREFCYWxmZGxwZXpYLw== 网络异常,未连接到网络,请连接网络#0401 情况2会在息屏一段时间(大概一分钟)后,返回lbs类型的定位信息,并且内容相同,很长时间才会变化且结果精度比较差 出现上述情况应该是息屏后一段时间cpu休眠导致,具体解决可查看高德官方的一个方法 情况还是和情况2一样 机型2
本站网友 怎样获得root权限
23分钟前 发表
notification); 原理为使用一个通知来调起后台定位,如下为通知的创建 java版本 private static final String OTIFICATIO_CHAEL_AME = 自定义; private otificationManager notificationManager = null; boolean isCreateChannel = false;@SuppressLint(ewApi) private otification buildotification() {otification.Builder builder = null;otification notification = null;if (Build.VERSIO.SDK_IT >= 26) {//Android O上对otification进行了修改,如果设置的targetSDKVersion>=26建议使用此种方式创建通知栏if (null == notificationManager) {notificationManager = (otificationManager) getSystemService(Context.OTIFICATIO_SERVICE);}String channelId = getPackageame();if (!isCreateChannel) {otificationChannel notificationChannel = new otificationChannel(channelId
本站网友 宁晋县吧
15分钟前 发表
OTIFICATIO_CHAEL_AME
本站网友 priest小说
8分钟前 发表
otificationManager? = null internal var isCreateChannel = false@SuppressLint(ewApi) private fun buildotification()
本站网友 欧莱雅男士护肤系列
12分钟前 发表
三星A6s(android 9)息屏定位 息屏定位设置 设置中搜索优化电池使用量,打开后选择所有应用程序,到自己的应用并关闭掉优化 如果不设置 三种情况都会在后台定位一段时候后应用被杀死 机型
本站网友 武威美食
29分钟前 发表
vivo IQOO neo(android 10)息屏定位 息屏定位设置 设置中电池 —> 后台高耗电 中到自己的应用,允许在后台高耗电是继续运行即可 如果不设置 三种情况息屏后定位在2~分钟后停止,再次解锁后才重新定位
本站网友 梦见有人追杀我
14分钟前 发表
高德关闭后台定位 locationClient.disableBackgroundLocation(boolean removeotification); 开启和关闭的时机可以自己在应用内写一个,推荐 这篇文章的第三种方法,也是高德官方定位sdk中使用的方法 四