HarmonyOS 鸿蒙Next 如何将图片保存到相册中?遇到这个问题,怎么解决

发布于 1周前 作者 gougou168 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何将图片保存到相册中?遇到这个问题,怎么解决

目前有项目需求,将用户选中的图片保存到相册中,但是 ohos.permission.WRITE_IMAGEVIDEO 权限受限,没有将图片写入相册的能力 是否有不申请 ohos.permission.WRITE_IMAGEVIDEO 权限的替代方案,可以将图片展示在相册中? 如果有,我们该如何调用?

2 回复
可以通过安全控件savebutton创建媒体资源,不需要WRITE_IMAGEVIDEO权限。

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/photoaccesshelper-savebutton-V5

更多关于HarmonyOS 鸿蒙Next 如何将图片保存到相册中?遇到这个问题,怎么解决的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS 鸿蒙Next系统中,将图片保存到相册中可以通过以下步骤实现:

  1. 获取图片数据:首先,确保你拥有要保存的图片数据,可以是Bitmap对象(假设已经通过某种方式获取到)。

  2. 创建MediaStore请求:使用MediaStore API来请求存储权限并准备保存图片。在鸿蒙系统中,MediaStore API提供了对媒体文件(包括图片)的访问和修改能力。

  3. 设置图片信息:创建一个ContentValues对象,并设置图片的相关信息,如MIME类型(通常为"image/jpeg")、标题、描述等。

  4. 插入图片到MediaStore:使用MediaStore的insert方法,将图片数据和相关信息插入到MediaStore中。这一步会自动将图片保存到设备的相册中。

  5. 处理回调:如果insert方法成功,会返回一个Uri,表示图片在设备上的位置。你可以使用这个Uri进行后续操作,如分享或显示图片。

示例代码(伪代码,具体实现需根据实际API调整):

// 假设bitmap是要保存的图片
Bitmap bitmap = ...;

// 使用MediaStore API保存图片
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.DISPLAY_NAME, "example.jpg");
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

// 将bitmap写入到uri指向的文件中
try (OutputStream outputStream = getContentResolver().openOutputStream(uri)) {
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
} catch (IOException e) {
    e.printStackTrace();
}

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部