HarmonyOS 鸿蒙Next 长时任务(location任务类型失败,返回9800005)?
HarmonyOS 鸿蒙Next 长时任务(location任务类型失败,返回9800005)?
日志上看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 ,他们将提供更专业的技术支持。