HarmonyOS 鸿蒙Next flutter插件image_gallery_saver保存图片提示权限错误
HarmonyOS 鸿蒙Next flutter插件image_gallery_saver保存图片提示权限错误 使用flutter插件image_gallery_saver保存图片的时候,报错提示ImageGallerySaverPlugin --> Permissions is false 想要保存图片到相册,需要申请哪个权限。我现在申请了ohos.permission.WRITE_MEDIA"这个权限。
看一下这个权限ohos.permission.WRITE_IMAGEVIDEO是否能满足需求,参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/photoaccesshelper-useralbum-guidelines-0000001774120638#ZH-CN_TOPIC_0000001811318718__
参考demo如下:
import photoAccessHelper from '@ohos.file.photoAccessHelper';
import fs from '@ohos.file.fs';
import common from '@ohos.app.ability.common';
import promptAction from '@ohos.promptAction';
import { BusinessError } from '@ohos.base';
async function savePhotoToGallery(context: common.UIAbilityContext) {
let helper = photoAccessHelper.getPhotoAccessHelper(context);
try {
// onClick触发后5秒内通过createAsset接口创建图片文件,5秒后createAsset权限收回。
let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg');
// 使用uri打开文件,可以持续写入内容,写入过程不受时间限制
let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
context.resourceManager.getMediaContent($r('app.media.icon').id, 0)
.then(async value => {
let media = value.buffer;
// 写到媒体库文件中
await fs.write(file.fd, media);
await fs.close(file.fd);
promptAction.showToast({ message: '已保存至相册!' });
});
}
catch (error) {
const err: BusinessError = error as BusinessError;
console.error(`Failed to save photo. Code is ${err.code}, message is ${err.message}`);
}
}
@Component
struct SavePage {
build() {
Row() {
Column({ space: 10 }) {
Image($r('app.media.icon'))
.height(400)
.width('100%')
SaveButton().onClick(async (event: ClickEvent, result: SaveButtonOnClickResult) => {
if (result === SaveButtonOnClickResult.SUCCESS) {
const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
// 免去权限申请和权限请求等环节,获得临时授权,保存对应图片
savePhotoToGallery(context);
} else {
promptAction.showToast({ message: '设置权限失败!' })
}
})
}
.width('100%')
}
.height('100%')
.backgroundColor(0xF1F3F5)
}
}
更多关于HarmonyOS 鸿蒙Next flutter插件image_gallery_saver保存图片提示权限错误的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
针对HarmonyOS鸿蒙系统中使用Flutter插件image_gallery_saver
保存图片时提示权限错误的问题,可能的原因及解决方法如下:
-
检查权限配置:确保在
config.json
文件中已经正确配置了存储权限。对于HarmonyOS,通常需要配置ohos.permission.WRITE_MEDIA
和ohos.permission.READ_MEDIA
等权限。 -
动态申请权限:在运行时,应用需要动态申请存储权限,并处理用户的授权结果。可以在Flutter中使用
permission_handler
等插件来辅助实现权限的动态申请。 -
检查插件版本:确保
image_gallery_saver
插件的版本与HarmonyOS SDK兼容。有时候,插件的新版本会修复与特定操作系统版本的兼容性问题。 -
调试和日志:使用HarmonyOS的开发者工具进行调试,查看详细的错误日志,以确定是哪一步操作导致了权限错误。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html,