HarmonyOS鸿蒙Next中无法获取位置信息
HarmonyOS鸿蒙Next中无法获取位置信息 配置权限后无法获取位置信息 提示权限错误 201
4 回复
需要用代码打开权限弹窗,点击允许
import { common, abilityAccessCtrl, Permissions, PermissionRequestResult, Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { bundleManager } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
@Entry
@Component
struct Permission {
@State message: string = 'Hello World';
@State userGrant:boolean = false
@State intervalID: number = 0
async reqPermissionsFromUser(): Promise<number[]> {
let context = getContext() as common.UIAbilityContext;
let atManager = abilityAccessCtrl.createAtManager();
let grantStatus = await atManager.requestPermissionsFromUser(context, ['ohos.permission.APPROXIMATELY_LOCATION','ohos.permission.LOCATION']);
return grantStatus.authResults;
}
// 申请权限
async requestLocationPermission() {
let grantStatus = await this.reqPermissionsFromUser()
for (let i = 0; i < grantStatus.length; i++) {
if (grantStatus[i] === 0) {
// 用户授权,可以继续访问目标操作
this.userGrant = true;
}
}
}
async aboutToAppear() {
await this.requestLocationPermission();
}
build() {
RelativeContainer() {
Text(this.message)
.id('PermissionHelloWorld')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.alignRules({
center: { anchor: '__container__', align: VerticalAlign.Center },
middle: { anchor: '__container__', align: HorizontalAlign.Center }
})
}
.height('100%')
.width('100%')
}
}
更多关于HarmonyOS鸿蒙Next中无法获取位置信息的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
配置权限后也是需要动态申请的,同意了才能使用定位,否则就会被拒绝的,报错BussinessError 201: Permission denied。可通过以下代码申请权限:
let atManager = abilityAccessCtrl.createAtManager();
let result = await atManager.requestPermissionsFromUser(context, permissions)
在HarmonyOS鸿蒙Next中无法获取位置信息,可能涉及以下原因及解决方案:
-
权限未开启:
- 确保应用已获取
ohos.permission.LOCATION权限。 - 检查系统设置中是否已开启定位服务。
- 确保应用已获取
-
定位服务未启用:
- 进入系统设置,确认定位服务已开启。
-
API调用问题:
- 检查代码中是否正确使用
geoLocationManager相关API。 - 确保
requestLocation方法调用正确。
- 检查代码中是否正确使用
-
设备硬件问题:
- 确认设备支持GPS功能,且硬件无故障。
-
系统版本兼容性:
- 确保使用的SDK版本与系统版本兼容。
-
网络问题:
- 检查网络连接是否正常,确保能访问定位服务。
调试时可通过日志排查问题,或参考官方文档确保API使用正确。


