管理用户相册
简介
photoAccessHelper模块提供了用户相册管理的API,包括创建或删除用户相册、向用户相册添加图片和视频,以及从用户相册中删除图片和视频。为确保应用运行效率,大多数PhotoAccessHelper API都是以回调或promise模式异步实现的。
使用说明
- 配置开发环境后,下载本示例代码工程且在IDE中构建APP确保成功;
- 进入
entry/src/ohosTest/ets/test文件夹; - 右键单击要运行的场景,选择
Run选项; - 也可以右键单击
List.test.ets运行所有场景。
工程目录
PhotoAccessHelper
entry/src/main/ets/
├── entryability
│ └── EntryAbility.ets # 入口能力
├── entrybackupability
│ └── EntryBackupAbility.ets # 备份能力
├── getfavoriteobjectability
│ └── GetFavoriteObjectAbility.ets # 获取收藏夹对象能力
├── getmediafromfavoritesability
│ └── GetMediaFromFavoritesAbility.ets # 从收藏夹获取媒体能力
├── getvideoalbumability
│ └── GetVideoAlbumAbility.ets # 获取视频相册能力
├── getvideosFromvideoalbumability
│ └── GetVideosFromVideoAlbumAbility.ets # 从视频相册获取视频能力
├── pages
│ └── Index.ets # 主界面
entry/src/main/resources/
└── rawfile
├── test.jpg # 测试图片
└── test.mp4 # 测试视频
entry/src/ohosTest/ets/
├── test
│ ├── GetFavoriteObject.test.ets # 获取收藏夹对象单元测试
│ ├── GetMediaFromFavorites.test.ets # 从收藏夹获取媒体单元测试
│ ├── GetVideoAlbum.test.ets # 获取视频相册单元测试
│ ├── GetVideosFromVideoAlbum.test.ets # 从视频相册获取视频单元测试
│ └── List.test.ets # 测试套件列表
└── Provider.ets # 测试提供者
具体实现
- 示例项目中包含4个不同的场景,所有场景都需要用户授予相关权限。为了获取用户权限,使用了
abilityAccessCtrl.AtManager接口的requestPermissionsFromUser方法。- 获取收藏夹对象:
- 从用户获取
ohos.permission.READ_IMAGEVIDEO权限; - 调用
photoAccessHelper.getAlbums方法,并将photoAccessHelper.AlbumType.SYSTEM和photoAccessHelper.AlbumSubtype.FAVORITE值传递给其参数; - 调用返回的
photoAccessHelper.FetchResult对象的getFirstObject方法获取相册。
- 从用户获取
- 从收藏夹相册获取媒体:
- 从用户获取
ohos.permission.READ_IMAGEVIDEO权限; - 调用
photoAccessHelper.getAlbums方法,并将photoAccessHelper.AlbumType.SYSTEM和photoAccessHelper.AlbumSubtype.FAVORITE值传递给其参数; - 调用返回的
photoAccessHelper.FetchResult对象的getFirstObject方法获取相册; - 创建
dataSharePredicates.DataSharePredicates对象; - 使用此谓词对象创建
photoAccessHelper.FetchOptions对象,用于从图库中获取资源; - 在获取的相册上调用
getAssets方法,并将创建的FetchOptions传递给其参数,将返回值赋给一个变量; - 在该变量上调用
getFirstObject方法以获取资源。
- 从用户获取
- 获取视频相册:
- 从用户获取
ohos.permission.READ_IMAGEVIDEO权限; - 调用
photoAccessHelper.getAlbums方法,并将photoAccessHelper.AlbumType.SYSTEM和photoAccessHelper.AlbumSubtype.VIDEO值传递给其参数; - 调用返回的
photoAccessHelper.FetchResult对象的getFirstObject方法获取相册。
- 从用户获取
- 从视频相册获取视频:
- 从用户获取
ohos.permission.READ_IMAGEVIDEO权限; - 调用
photoAccessHelper.getAlbums方法,并将photoAccessHelper.AlbumType.SYSTEM和photoAccessHelper.AlbumSubtype.VIDEO值传递给其参数; - 调用返回的
photoAccessHelper.FetchResult对象的getFirstObject方法获取相册; - 创建
dataSharePredicates.DataSharePredicates对象; - 使用此谓词对象创建
photoAccessHelper.FetchOptions对象,用于从图库中获取资源; - 在获取的相册上调用
getAssets方法,并将创建的FetchOptions传递给其参数,将返回值赋给一个变量; - 在该变量上调用
getFirstObject方法以获取视频。
- 从用户获取
- 获取收藏夹对象:
相关权限
- ohos.permission.READ_IMAGEVIDEO - 读取媒体资源时需要
依赖
不涉及。
约束与限制
- 本示例仅支持标准系统上运行;
- 本示例支持API22版本SDK,版本号:6.0.2;
- 本示例需要使用DevEco Studio 6.0.0 Canary1(构建版本:6.0.0.63,构建于2025年10月30日)及以上版本才可编译运行。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/DocsSample/MediaLibraryKit/SystemAlbumUsageSample > .git/info/sparse-checkout
git remote add origin https://gitcode.com/HarmonyOS_Samples/guide-snippets.git
git pull origin master