HarmonyOS beta1中,startRecording会调起用户授权,有什么方法可以拿到用户的授权结果?

录屏场景,版本beta1,需要在用户拒绝授权时给出提示,而不是直接进到后续的流程;目前没有找到能够拦截这个操作的方法

阅读 446
1 个回答

参考以下代码:

let permissions: Array<Permissions> =['ohos.permission.WRITE_IMAGEVIDEO','ohos.permission.READ_IMAGEVIDEO']
let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
//requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗
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) {
      //这里是用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限
      return;
    }
  }
  //这里是用户同意授权后进行的操作
  console.info(`Success to request permissions from user. authResults is ${grantStatus}.`);
}).catch((err: BusinessError) => {
  console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`);
})

参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-abilityaccessctrl-V5

需要根据弹框使用添加一下对应permissions

logo
HarmonyOS
子站问答
访问
宣传栏