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}`);
}
}
mediaLibrary已经提示被废弃,使用新版APIphotoAccessHelper需要新的权限。ohos.permission.WRITE\_IMAGEVIDEO和ohos.permission.READ\_IMAGEVIDEO为受限权限。
ohos.permission.WRITE\_IMAGEVIDEO权限参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/restricted-permissions-V5\#section1417080131712
ohos.permission.READ\_IMAGEVIDEO权限参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/restricted-permissions-V5\#section397164718158
使用受限权限,其申请方式请参考:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/declare-permissions-in-acl-V5
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-abilityaccessctrl-V5\#abilityaccessctrlcreateatmanager