HarmonyOS 鸿蒙Next 长时任务(location任务类型失败,返回9800005)?

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 长时任务(location任务类型失败,返回9800005)?

HarmonyOS 长时任务(location任务类型失败,返回9800005)?

2 回复

日志上看The bgMode is invalid,应该是长时任务的类型配置错误。
model.json5中做如下添加:

"backgroundModes": [
// 长时任务类型的配置项
  "location"
] 

开启定位长时任务和关闭长时任务的接口:

startLocationContinuousTask(){
  let wantAgentInfo: wantAgent.WantAgentInfo = {
    // 点击通知后,将要执行的动作列表
    wants: [
      {
        bundleName: "com.example.backgroundtask",
        abilityName: "EntryAbility"
      }
    ],
    // 点击通知后,动作类型
    actionType: wantAgent.OperationType.START_ABILITY,
    // 使用者自定义的一个私有值
    requestCode: 0,
    // 点击通知后,动作执行属性
    wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
  };

try { //通过wantAgent模块下getWantAgent方法获取WantAgent对象 wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj: WantAgent) => { try { backgroundTaskManager.startBackgroundRunning(getContext(this) as common.UIAbilityContext, backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => { console.info(“Operation startBackgroundRunning succeeded”);

    }).catch((error: BusinessError.BusinessError) => {
      console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`);
    });
  } <span class="hljs-keyword">catch</span> (error) {
    console.error(` startBackgroundRunning failed. code is ${(error as BusinessError.BusinessError).code} message is ${(error as BusinessError.BusinessError).message}`);
  }
});

} catch (error) { console.error(Operation getWantAgent failed. code is ${(error as BusinessError.BusinessError).code} message is ${(error as BusinessError.BusinessError).message}); }

}

//关闭长时任务 stopLocationContinuousTask() { backgroundTaskManager.stopBackgroundRunning(getContext(this) as common.UIAbilityContext).then(() => { console.info(Succeeded <span class="hljs-keyword">in</span> operationing stopBackgroundRunning.); }).catch((error: BusinessError.BusinessError) => { console.error(Failed to operation stopBackgroundRunning. Code is ${error.code}, message is ${error.message}); }); }

针对您提到的HarmonyOS鸿蒙Next系统中长时任务(location任务类型)失败,并返回错误码9800005的问题,这通常表明在尝试执行定位任务时遇到了特定的系统或权限错误。

错误码9800005可能关联于权限未正确授予、系统配置问题或定位服务本身存在异常。首先,请确保您的应用已正确申请并获得了定位权限。在鸿蒙系统中,这通常需要在应用的“权限管理”中明确授予。

其次,检查您的应用是否在后台运行时被系统限制了定位服务。鸿蒙系统对后台应用的资源使用有较为严格的管理,可能需要在电池优化或应用启动管理中对您的应用进行相应设置,以确保其能在后台持续获取定位信息。

此外,考虑到是鸿蒙Next系统,系统本身可能存在一些未修复的bug或兼容性问题。建议查看鸿蒙系统的更新日志和开发者文档,确认是否有相关的已知问题或修复措施。

如果上述步骤均无法解决问题,建议联系鸿蒙系统的官方客服进行进一步咨询和排查。官网客服地址是:https://www.itying.com/category-93-b0.html ,他们将提供更专业的技术支持。

回到顶部