HarmonyOS photoAccessHelper如何获取所有相册的信息
目前在实现一个自定义媒体相册,想拿到所有相册的名称,但是能拿到的相册信息不完整。非HarmonyOS是能正常拿到所有相册信测的,HarmonyOS的只能拿到photoAccessHelper.AlbumType.USER的相册信息,无法拿到系统自动分类的相册信息,而且数目也不正确。这个是什么原因引起的呢?HarmonyOS的视频的查询规则:
async aboutToAppear(): Promise<void> {
const context = getContext(this);
const phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
const predicates = new dataSharePredicates.DataSharePredicates();
const fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates
}
const sysFetchResult = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.ANY, fetchOptions);
const userFetchResult = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.ANY, fetchOptions);
console.info('fetchResult', sysFetchResult.getCount())
console.info('fetchResult', userFetchResult.getCount())
const sysAlbum = await this.fetchResultIterator(sysFetchResult);
const userAlbum = await this.fetchResultIterator(userFetchResult);
sysAlbum.forEach(album => {
console.info('sysAlbumName', album.albumName);
})
userAlbum.forEach(album => {
console.info('userAlbumName', album.albumName);
})
}
async fetchResultIterator(fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album>, albumList: photoAccessHelper.Album[] = []): Promise<photoAccessHelper.Album[]> {
if (fetchResult.isAfterLast()) return albumList;
const getPhotoObject = !albumList.length ? fetchResult.getFirstObject() : fetchResult.getNextObject();
const album = await getPhotoObject;
albumList.push(album);
return this.fetchResultIterator(fetchResult, albumList)
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS如何获取用户相册所有目录?
1703浏览 • 1回复 待解决
获取相册图片信息,获取手机相册中的图片相关信息
594浏览 • 1回复 待解决
HarmonyOS 如何获取所有路由栈里的信息
138浏览 • 1回复 待解决
HarmonyOS 中photoAccessHelper获取图片大小报错
113浏览 • 1回复 待解决
HarmonyOS photoAccessHelper获取到的图片资源,有对应的uuid获取吗
115浏览 • 1回复 待解决
HarmonyOS photoAccessHelper 能否通过 uri 获取对应的图片obj
69浏览 • 1回复 待解决
HarmonyOS如何获取规范格式的设备信息
119浏览 • 1回复 待解决
鸿蒙普通应用如何获取所有app信息?有没有类似于Android 的PackageManage的包?
10103浏览 • 1回复 待解决
如何获取router push的所有page?
155浏览 • 0回复 待解决
HarmonyOS怎么获取系统相册的路径
138浏览 • 1回复 待解决
如何查看当前设备正在运行的所有进程的信息?
219浏览 • 1回复 待解决
HarmonyOS如何获取对象所有的值和value
205浏览 • 1回复 待解决
如何获取获取OAID信息
148浏览 • 1回复 待解决
通过相册名获取相册资源
507浏览 • 1回复 待解决
HarmonyOS 相册选的图片 用fs读不到信息 报错13900002
202浏览 • 1回复 待解决
HarmonyOS获取相册视频的宽高问题
117浏览 • 1回复 待解决
HarmonyOS调用PhotoAccessHelper.getAssets问题
130浏览 • 1回复 待解决
HarmonyOS 如何获取媒体资源的md5信息
195浏览 • 1回复 待解决
如何获取设备的CPU信息
1899浏览 • 1回复 待解决
如何获取组件的属性信息
1658浏览 • 1回复 待解决
HarmonyOS 获取class实例上的所有函数名
91浏览 • 1回复 待解决
HarmonyOS 如何获取操作系统相关信息?
89浏览 • 1回复 待解决
@ohos.file.picker (选择器)和@ohos.file.photoAccessHelper (相册管理模块)的区别
405浏览 • 1回复 待解决
HarmonyOS 系统信息获取方式
109浏览 • 1回复 待解决
phAccessHelper.getAlbums只能获取用户创建的相册和系统预置相册。而系统预置相册,只有两个,根据类型分别是FAVORITE和Video。系统图库中的【图片】相册并不是一个物理意思上的相册文件,它是系统图库中图片的合集,所以通过phAccessHelper.getAlbums获取相册对象是无法获取到该合集的。系统相册资源包括:收藏夹、视频相册、截屏和录屏相册。可参考文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/media/medialibrary/photoAccessHelper-systemAlbum-guidelines.md#%E7%B3%BB%E7%BB%9F%E7%9B%B8%E5%86%8C%E8%B5%84%E6%BA%90%E4%BD%BF%E7%94%A8%E6%8C%87%E5%AF%BC
系统截屏生成的图片是可以在图片相册中获取到,可以使用phAccessHelper.getAssets获取到;系统录屏生成的视频文件可以在视频相册中获取。