HarmonyOS 鸿蒙Next 获取定位权限出现Error message:BussinessError 201: Permission denied.这个提示如何解决

发布于 1周前 作者 caililin 最后一次编辑是 5天前 来自 鸿蒙OS

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

2 回复
请检查下app是否有定位权限

动态向用户申请授权,可以使用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”的错误提示,通常意味着应用未正确获取或被授予定位权限。以下是一些可能的原因和解决方案:

  1. 检查权限声明:确保你的应用在manifest.json或相应的权限配置文件中已正确声明了定位权限。

  2. 用户授权:用户需要在应用首次请求定位权限时授予权限。检查应用是否有提示用户授权,并确保用户已同意。

  3. 系统设置:在手机的系统设置中,检查应用是否被允许访问定位信息。有时用户可能在应用外手动更改了权限设置。

  4. 系统兼容性:确认你的应用兼容当前版本的HarmonyOS。有时系统更新会导致权限管理逻辑的变化。

  5. 代码审查:检查代码中请求权限的逻辑是否正确。确保在调用定位功能前,应用已经成功获取了定位权限。

  6. 清理缓存和重启:尝试清理应用缓存和系统缓存,并重启设备,看是否能解决问题。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部