HarmonyOS 鸿蒙Next中定位报错

HarmonyOS 鸿蒙Next中定位报错 调用定位API报错Cannot read property ACCURACY of undefined。

4 回复

【解决方案】 开发者您好,请排查: 1、是否在 module.json5 中声明 ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION 权限,并进行动态弹窗申请; 2、获取位置信息返回的结果是否为 undefined。 如果排查未发现异常,请提供可以复现问题的demo方便问题分析解决。

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


无法读取未定义属性ACCURACY。 建议你参考定位指南文档,使用官方示例代码进行测试和修改。

鸿蒙Next定位报错常见原因:权限未声明或动态申请失败(需ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION),或系统位置服务未开启。API调用需在UIAbility或Page中正确使用geolocation.on('locationChange')getCurrentLocation,错误码201表示权限被拒,202表示位置服务关闭。检查module.json5权限列表及代码中权限请求逻辑即可。

该错误是因为代码尝试读取一个 undefined 对象的 ACCURACY 属性。在 HarmonyOS Next 的定位 API 中,定位精度通常通过 geoLocationManager.LocationAccuracy 枚举来设置,而不是直接使用 ACCURACY 常量。

常见错误写法:

let request = {
    accuracy: geoLocationManager.ACCURACY_HIGH // geoLocationManager.ACCURACY 为 undefined
};

正确写法:

import { geoLocationManager } from '@ohos.geoLocationManager';

let request = {
    priority: geoLocationManager.LocationRequestPriority.FIRST_FIX,
    timeInterval: 1,
    accuracy: geoLocationManager.LocationAccuracy.HIGH // 使用正确的枚举
};

请排查你的代码中是否误用了精度常量的名称,并确认已从 @ohos.geoLocationManager 正确导入所需类型。修正后即可正常调用定位接口。

回到顶部