HarmonyOS 鸿蒙Next 后台定位问题

发布于 1周前 作者 ionicwang 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 后台定位问题
使用鸿蒙的@ohos.geoLocationManager (位置服务),给了后台定位的权限,也在应用的设置的【位置信息】权限设置为【始终允许】,应用前台定位一切正常,切换到后台,还能定位几秒钟,就不再返回位置信息了。是受到什么省电策略之类的影响吗?还是什么问题呢(我用高德的定位sdk也有相同问题)
 

private systemRequestInfo: geoLocationManager.LocationRequest = {
'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX,
'timeInterval': 1,
'distanceInterval': 0,
'maxAccuracy': 0
};
private systemListener = (location: geoLocationManager.Location): void => {
console.error("正在定位-系统")
this.setMeSta(location)
}
geoLocationManager.on('locationChange', this.systemRequestInfo, this.systemListener)

更多关于HarmonyOS 鸿蒙Next 后台定位问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复
在目前的后台定位机制中,后台运行超过十秒且未申请CPU资源则会被冻结。在此情况下则需要申请后台长时任务保证应用的后台运行,

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/continuous-task-V5

申请ohos.permission.LOCATION_IN_BACKGROUND权限并且申请LOCATION类型的长时任务是可以支持应用切换到后台,持续上报位置信息的;

注意检查下自己的【设置】-【隐私和安全】-【位置信息】,看看自己的应用是否设置了【始终允许】

更多关于HarmonyOS 鸿蒙Next 后台定位问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我已经申请类型为 LOCATION 的长任务,申请长任务回调是成功的。并且也设置了始终允许,但是,app退至后台后就无法收到定位回调了。

针对HarmonyOS 鸿蒙Next后台定位问题,以下是一些专业的解决方案:

  1. 确认系统位置开关:首先确保系统的位置开关已开启,如果系统位置能力没有开启,任何应用都无法使用定位服务。
  2. 检查应用权限:应用需要向用户申请“ohos.permission.LOCATION”以获取精准位置,或申请“ohos.permission.APPROXIMATELY_LOCATION”以获取模糊位置。若应用需要后台定位,还需申请“ohos.permission.LOCATION_IN_BACKGROUND”。
  3. 定位策略与超时时间:在调用定位API时,应确保已正确配置定位策略和超时时间。例如,使用“geoLocationManager.getCurrentLocation”方法时,可以设置定位策略为精度优先或速度优先,并根据需要设置单次定位超时时间。
  4. 软件更新:检查鸿蒙系统及其定位软件是否有更新,及时安装最新版本,以修复可能存在的bug。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部