HarmonyOS ohos.permission.LOCATION_IN_BACKGROUND 应该如何获取权限

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/permissions-for-all-V5#ohospermissionlocation_in_background

1、在项目中 module.json5 声明了 LOCATION、APPROXIMATELY_LOCATION、LOCATION_IN_BACKGROUND

2、按照说明先授权的定位权限(LOCATION、APPROXIMATELY_LOCATION)

3、在系统设置页面将对应的 app 的位置权限设置为始终允许

4、通过 atManager.requestPermissionsFromUser 去获取 BACKGROUND 权限,返回对应的 authResults 都是 2

示例代码:

atManager.requestPermissionsFromUser(context,  ['ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION', 'ohos.permission.LOCATION_IN_BACKGROUND']).then((data) => {
  const grantStatus: Array<number> = data.authResults;
  const length: number = grantStatus.length;
  for (let i = 0; i < length; i++) {
    if (grantStatus[i] === 0) {
      // 用户授权,可以继续访问目标操作
    } else {
      // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限
      // 将对应权限的下标返回出去
      onReject(i)
      return;
    }
  }
  onResolve()
}).catch((err: Error) => {
  // todo errcode
  console.error(`requestPermissionsFromUser failed, code is code, message is ${err.message}`);
})

某些场景需要在后台监听位置的变化

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

由于安全隐私要求,应用不能通过弹窗的形式被授予后台位置权限,应用如果需要使用后台位置权限,需要引导用户到设置界面手动授予。

具体规格参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/permissions-for-all-V5#ohospermissionlocation_in_background

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 关于ohos.permission.WRITE_IMAGEVIDEO
603浏览 • 1回复 待解决