HarmonyOS API12操作相册报权限问题?

photoAccessHelper getPhotoAccessHelper inner add createDeleteRequest and showAssetsCreationDialog
createAsset failed, message =  Error: without medialibrary permission

代码如下:

requestPermissionsFn() {
  try {
    const atManager = abilityAccessCtrl.createAtManager()
    //申请相册管理模块权限'ohos.permission.WRITE_IMAGEVIDEO'
    atManager.requestPermissionsFromUser(appContext, [
      'ohos.permission.WRITE_IMAGEVIDEO', 'ohos.permission.READ_IMAGEVIDEO'
    ]).then(async () => {
      console.log(`request Permissions success!`);
      try {
        //获取相册管理模块的实例,用于访问和修改相册中的媒体文件
        let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(appContext);
        //通过createAsset接口创建图片文件
        let uri = await phAccessHelper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'png'); // 创建媒体文件
        console.info('createAsset successfully, uri: ' + uri);
        let file = await fs.open(uri, fs.OpenMode.READ_WRITE || fs.OpenMode.CREATE);
        // 使用uri打开文件,可以持续写入内容,写入过程不受时间限制
        console.log(JSON.stringify(buffer))
        await fs.write(file.fd, buffer);
        // 关闭文件
        promptAction.showToast({
          message: "保存成功",
          duration: 2000
        });
        await fs.close(file);
      } catch (err) {
        console.error('createAsset failed, message = ', err);
      }
    })
  } catch (err) {
    console.info(`requestPermissionsFromUser call Failed! error: ${err.code}`);
  }
}
阅读 503
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进