HarmonyOS鸿蒙Next中使用showAssetsCreationDialog来保存图片或视频到相册

HarmonyOS鸿蒙Next中使用showAssetsCreationDialog来保存图片或视频到相册 场景:批量下载图片或视频,并在下载完成后保存到相册中。
方案:在开始下载前,就调用showAssetsCreationDialog,在用户授予权限后再开始下载,下载完成一个文件就存一个文件。
问题:在开始下载前,由于本地源文件根本不存在,所以本地的uri只是一个标记下载文件存储地址,此时调用showAssetsCreationDialog就无法返回正确的uri。
若在下载完成后再去存储,若要实现下载一个就存一个文件的话,就需要每个文件都要弹窗,即一堆弹窗。
若在全部下载完成后再去存储,这又不符合设计逻辑。
请问有什么好的方案或者api可以帮忙解决这个问题吗?


更多关于HarmonyOS鸿蒙Next中使用showAssetsCreationDialog来保存图片或视频到相册的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

下载成功以后将图片保存到cache目录下,然后保存一下图片的fileUri,然后全部下载完成拿着uri的集合去调用下面的方法,参考:
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/media/medialibrary/photoAccessHelper-savebutton.md#%E5%BC%B9%E7%AA%97%E6%8E%88%E6%9D%83%E4%BF%9D%E5%AD%98

更多关于HarmonyOS鸿蒙Next中使用showAssetsCreationDialog来保存图片或视频到相册的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,showAssetsCreationDialog是一个用于保存图片或视频到相册的API。该API允许开发者通过系统提供的对话框,将媒体文件保存到设备的相册中。使用showAssetsCreationDialog时,开发者需要指定要保存的文件路径以及文件的MIME类型。系统会根据提供的MIME类型,自动将文件归类为图片或视频,并将其保存到相应的相册目录中。

具体使用时,开发者需要调用showAssetsCreationDialog方法,并传入包含文件路径和MIME类型的参数。系统会弹出对话框,用户确认后,文件将被保存到相册。该API简化了开发者处理媒体文件保存的流程,无需手动处理文件系统操作或权限请求。

示例代码如下:

import featureAbility from '@ohos.ability.featureAbility';

let filePath = 'path/to/your/file.jpg';
let mimeType = 'image/jpeg';

featureAbility.showAssetsCreationDialog(filePath, mimeType, (err) => {
    if (err) {
        console.error('Failed to save file:', err);
    } else {
        console.log('File saved successfully');
    }
});

该方法适用于需要将用户生成或下载的图片、视频等媒体文件保存到相册的场景。通过使用showAssetsCreationDialog,开发者可以确保文件以系统标准的方式保存,并且用户能够通过相册应用轻松访问这些文件。

在HarmonyOS鸿蒙Next中,showAssetsCreationDialog 是一个用于保存图片或视频到相册的API。通过调用该API,开发者可以触发系统原生的保存对话框,允许用户选择将媒体文件保存到设备的相册中。该API支持多种媒体类型,包括图片和视频,并且可以指定文件的来源路径。使用 showAssetsCreationDialog 可以简化保存流程,提升用户体验。

示例代码:

import ohos.media.image.ImageSource;
import ohos.media.image.PixelMap;
import ohos.media.image.common.PixelFormat;
import ohos.media.photokit.mission.PhotoKit;
import ohos.media.photokit.mission.PhotoKitException;
import ohos.media.photokit.mission.PhotoMission;
import ohos.media.photokit.mission.PhotoMissionInfo;
import ohos.media.photokit.mission.PhotoMissionType;

// 创建PhotoMission对象
PhotoMission photoMission = new PhotoMission();
photoMission.setMissionType(PhotoMissionType.SAVE_IMAGE);
photoMission.setFilePath("/path/to/image.jpg");

// 显示保存对话框
try {
    PhotoKit.showAssetsCreationDialog(context, photoMission);
} catch (PhotoKitException e) {
    // 处理异常
}

通过上述代码,用户可以选择将指定路径的图片保存到相册中。

回到顶部