HarmonyOS 鸿蒙Next 获取定位权限出现Error message:BussinessError 201: Permission denied.这个提示如何解决
HarmonyOS 鸿蒙Next 获取定位权限出现Error message:BussinessError 201: Permission denied.这个提示如何解决
获取定位权限出现Error
message: BussinessError
201:
Permission
denied.这个提示改如何解决
import geoLocationManager from '@ohos.geoLocationManager'
import BusinessError from "@ohos.base";
let requestInfo: geoLocationManager.LocationRequest = {
'priority': geoLocationManager.LocationRequestPriority.ACCURACY,
'scenario': geoLocationManager.LocationRequestScenario.UNSET,
'timeInterval': 1,
'distanceInterval': 0,
'maxAccuracy': 0
};
@Entry
@Component
struct LocationPage {
@State mLatitude: string = ''
// 经度
@State mLongitude: string = ''
// 纬度
@State mAltitude: string = ''
// 海拔(米)
@State mAccuracy: string = ''
// 精度(米)
@State mSpeed: string = ''
//速度(米/秒)
@State mTimeStamp: string = ''
// 时间戳
@State mDirection: string = ''
// 方向
build() {
Column() {
Button("获取位置")
.width(100)
.backgroundColor($r('app.color.sd_color_background'))
.margin({ top: 50, bottom: 20 })
.onClick(() => {
this.getLocation()
})
Text('当前位置').fontSize(24)
Grid() {
GridItem() {
Text('经度:')
}
GridItem() {
Text(this.mLatitude)
}
GridItem() {
Text('纬度:')
}
GridItem() {
Text(this.mLongitude)
}
GridItem() {
Text('海拔:')
}
GridItem() {
Text(this.mAltitude)
}
GridItem() {
Text('精度:')
}
GridItem() {
Text(this.mAccuracy)
}
GridItem() {
Text('速度:')
}
GridItem() {
Text(this.mSpeed)
}
GridItem() {
Text('时间:')
}
GridItem() {
Text(this.mSpeed)
}
GridItem() {
Text('方向:')
}
GridItem() {
Text(this.mDirection)
}
}.columnsTemplate('1fr 4fr').rowsGap(15).padding(10).width('90%')
}.width('100%').backgroundColor('#EAEAEA').padding(10)
} // 获取手机当前位置
getLocation() {
try {
let isAvailable = geoLocationManager.isGeocoderAvailable();
} catch (err) {
console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" +
(err as BusinessError.BusinessError).message);
}
let locationChange = (location: geoLocationManager.Location) => {
console.log('locationChanger: data: ' + JSON.stringify(location));
};
geoLocationManager.on('locationChange', requestInfo, locationChange);
try {
let location = geoLocationManager.getLastLocation();
this.mLatitude = location.latitude.toString();
this.mLongitude = location.longitude.toString();
this.mAltitude = location.altitude.toString();
this.mAccuracy = location.accuracy.toString();
this.mSpeed = location.speed.toString();
this.mTimeStamp = location.timeStamp.toString();
this.mDirection = location.direction.toString();
console.log("testTag", "获取到的位置信息:")
console.log("testTag", "纬度latitude " + this.mLatitude)
console.log("testTag", "经度longitude " + this.mLongitude)
console.log("testTag", "海拔(米)altitude " + this.mAltitude)
console.log("testTag", "精度(米)accuracy " + this.mAccuracy)
console.log("testTag", "速度(米/秒)speed " + this.mSpeed)
console.log("testTag", "时间戳timeStamp " + this.mTimeStamp)
console.log("testTag", "方向direction " + this.mDirection)
} catch (err) {
console.error("errCode:" + err.code + ",errMessage:" + err.message);
}
geoLocationManager.off('locationChange', locationChange);
}
}
更多关于HarmonyOS 鸿蒙Next 获取定位权限出现Error message:BussinessError 201: Permission denied.这个提示如何解决的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
动态向用户申请授权,可以使用requestPermissionsFromUser()方法,
文档参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/request-user-authorization-V5
在成功的回调里处理相关的业务逻辑
更多关于HarmonyOS 鸿蒙Next 获取定位权限出现Error message:BussinessError 201: Permission denied.这个提示如何解决的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
遇到HarmonyOS鸿蒙Next系统中获取定位权限时出现“Error message: BussinessError 201: Permission denied”的错误提示,通常意味着应用未正确获取或被授予定位权限。以下是一些可能的原因和解决方案:
-
检查权限声明:确保你的应用在
manifest.json
或相应的权限配置文件中已正确声明了定位权限。 -
用户授权:用户需要在应用首次请求定位权限时授予权限。检查应用是否有提示用户授权,并确保用户已同意。
-
系统设置:在手机的系统设置中,检查应用是否被允许访问定位信息。有时用户可能在应用外手动更改了权限设置。
-
系统兼容性:确认你的应用兼容当前版本的HarmonyOS。有时系统更新会导致权限管理逻辑的变化。
-
代码审查:检查代码中请求权限的逻辑是否正确。确保在调用定位功能前,应用已经成功获取了定位权限。
-
清理缓存和重启:尝试清理应用缓存和系统缓存,并重启设备,看是否能解决问题。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。