HarmonyOS如何获取用户相册所有目录?

鸿蒙如何获取用户相册所有目录?

业务场景:需要读取到当前用户下的所有图片,实现应用内部自定义图片列表,双框架可以通过云闪付登录后,首页右上角扫一扫 —> 相册进入

参考官网文档https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/photoaccesshelper-overview-0000001821000253

通过photoAccessHelper,本地跑不通[nodict]MediaLibraryNapiUtils:{HandleError:641} Error: GetPhotoAlbums medialibrary inner fail, js errcode:14000011

代码如下:

let context = getContext(this); 
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); 
let albumPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 
let albumName: photoAccessHelper.AlbumKeys = photoAccessHelper.AlbumKeys.ALBUM_NAME; 
albumPredicates.equalTo(albumName, ‘albumName’); 
let albumFetchOptions: photoAccessHelper.FetchOptions = { 
  fetchColumns: [], 
  predicates: albumPredicates 
}; 
 
let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 
let photoFetchOptions: photoAccessHelper.FetchOptions = { 
  fetchColumns: [], 
  predicates: photoPredicates 
}; 
 
try { 
let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions); 
let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 
console.info('getAlbums successfully, albumName: ’ + album.albumName); 
let photoFetchResult = await album.getAssets(photoFetchOptions); 
let photoAsset = await photoFetchResult.getFirstObject(); 
console.info('album getAssets successfully, albumName: ’ + photoAsset.displayName); 
albumFetchResult.close(); 
photoFetchResult.close(); 
} catch (err) { 
console.error('album getAssets failed with err: ’ + JSON.stringify(err)); 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.

同时无法获取相机中的图片

HarmonyOS
2024-05-09 22:48:22
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
mzshj

添加动态权限后可以解决上面的报错,但是仍然无法获取相机中的图片。主要是因为相机相册是系统接口,无法通过getAlbums获取,只能通过picker获取。如果不想使用picker,想自定义一个页面就只能访问自己的相册,不能访问系统相册。

分享
微博
QQ
微信
回复
2024-05-10 11:05:59
相关问题
HarmonyOS 获取用户的步数
1230浏览 • 2回复 待解决
HarmonyOS 如何获取用户所在省市区?
1783浏览 • 1回复 待解决
如何获取用户设备的自定义名字?
272浏览 • 0回复 待解决
使用Account Kit 获取用户头像昵称
1183浏览 • 1回复 待解决
用户相册, 获取不到albumName
2337浏览 • 1回复 待解决
取消Account Kit 获取用户头像昵称授权
1410浏览 • 1回复 待解决
HarmonyOS 用户相册和系统相册概念
711浏览 • 1回复 待解决