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
2024-08-22 20:24:32
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

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获取到;系统录屏生成的视频文件可以在视频相册中获取。

分享
微博
QQ
微信
回复
2024-08-23 14:09:19
相关问题
HarmonyOS如何获取用户相册所有目录?
1703浏览 • 1回复 待解决
HarmonyOS如何获取规范格式设备信息
119浏览 • 1回复 待解决
如何获取router push所有page?
155浏览 • 0回复 待解决
HarmonyOS怎么获取系统相册路径
138浏览 • 1回复 待解决
HarmonyOS如何获取对象所有的值和value
205浏览 • 1回复 待解决
如何获取获取OAID信息
148浏览 • 1回复 待解决
通过相册获取相册资源
507浏览 • 1回复 待解决
HarmonyOS获取相册视频宽高问题
117浏览 • 1回复 待解决
HarmonyOS调用PhotoAccessHelper.getAssets问题
130浏览 • 1回复 待解决
HarmonyOS 如何获取媒体资源md5信息
195浏览 • 1回复 待解决
如何获取设备CPU信息
1899浏览 • 1回复 待解决
如何获取组件属性信息
1658浏览 • 1回复 待解决
HarmonyOS 系统信息获取方式
109浏览 • 1回复 待解决