HarmonyOS 使用requestPermissionsFromUser获取权限,弹窗未按照预期弹出

系统弹窗,在整个应用周期内只会弹出一次?即使断点已经走到了return中,也无法弹出。

handleReloadCountChange() {
  if (!this.context) {
    return
  }
  this.xComponentController.setXComponentSurfaceRotation({ lock: true })
  let permissions: Array<Permissions> = ['ohos.permission.CAMERA', 'ohos.permission.MICROPHONE']
  let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
  atManager.requestPermissionsFromUser(this.context, permissions).then((data: PermissionRequestResult) => {
    let grantStatus: Array<number> = data.authResults;
    let length: number = grantStatus.length;
    for (let i = 0; i < length; i++) {
      if (grantStatus[i] != 0) {
        toast('请去设置打开相机以及麦克风权限~')
        return;
      }
    }
    this.getCameraImage()
  }).catch((err: BusinessError) => {
  })
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

如果首次弹窗询问权限后用户选择禁止,后续只能引导用户到设置里手动打开权限。另外,屏幕录制不需要申请权限,使用api会自动弹出的那个录制屏幕的权限弹框。但是如果需要录制音频需要麦克风权限。保存录像文件需要读和存,应用后台需要悬浮窗和后台保活的权限。要检查用户是否已向应用授予特定权限,可以使用checkAccessToken()函数。此方法会返回PERMISSION_GRANTED或PERMISSION_DENIED,参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/request-user-authorization-V5#%E7%BA%A6%E6%9D%9F%E4%B8%8E%E9%99%90%E5%88%B6

分享
微博
QQ
微信
回复
1天前
相关问题
requestPermissionsFromUser使用Demo
1616浏览 • 1回复 待解决
怎么样获取后台弹出界面的权限
5273浏览 • 1回复 待解决
HarmonyOS share弹窗无法弹出
54浏览 • 1回复 待解决
HarmonyOS 权限弹窗如何实现?
301浏览 • 1回复 待解决
HarmonyOS 首页多个弹窗按顺序弹出
35浏览 • 1回复 待解决
HarmonyOS 页面以弹窗的样式弹出
570浏览 • 1回复 待解决
atManager.requestPermissionsFromUser问题咨询
420浏览 • 1回复 待解决
HarmonyOS 全局自定义弹窗无法弹出
42浏览 • 1回复 待解决
HarmonyOS 申请权限,禁止后不再弹窗
43浏览 • 1回复 待解决
后台弹窗权限怎么判断?
4831浏览 • 1回复 待解决
HarmonyOS 麦克风权限弹窗
64浏览 • 1回复 待解决