HarmonyOS 鸿蒙Next获取系统相册报错
HarmonyOS 鸿蒙Next获取系统相册报错
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(getContext(this));
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let albumName: photoAccessHelper.AlbumKeys = photoAccessHelper.AlbumKeys.ALBUM_NAME;
// predicates.equalTo(albumName,“label”);
// let fetchOptions: photoAccessHelper.FetchOptions = {
// fetchColumns:[],
// predicates:predicates
// }
try{
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM,photoAccessHelper.AlbumSubtype.USER_GENERIC);
let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
console.log(“获取相册成功,相册名称” + album.albumName);
fetchResult.close();
} catch (err){
console.log(“获取相册失败”+err);
}
使用该代码获取相册内容 报错System inner fail
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let albumName: photoAccessHelper.AlbumKeys = photoAccessHelper.AlbumKeys.ALBUM_NAME;
// predicates.equalTo(albumName,“label”);
// let fetchOptions: photoAccessHelper.FetchOptions = {
// fetchColumns:[],
// predicates:predicates
// }
try{
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM,photoAccessHelper.AlbumSubtype.USER_GENERIC);
let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
console.log(“获取相册成功,相册名称” + album.albumName);
fetchResult.close();
} catch (err){
console.log(“获取相册失败”+err);
}
使用该代码获取相册内容 报错System inner fail
3 回复
1.访问系统相册,可以使用picker,也可以申请相册管理模块权限'ohos.permission.WRITE_IMAGEVIDEO',picker是为了给一些没有权限的三方应用使用的,'ohos.permission.WRITE_IMAGEVIDEO'为系统等级,user_grant,实例代码中没有向用户动态授权的代码,向用户事情申请权限可参考一下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/request-user-authorization-V5
普通应用申请系统级别权限,需要在应用市场ACL跨级别申请
2.测试官网《系统相册资源使用指导》代码没有问题,可以正常获取
3.指南中系统相册获取方法和API中@ohos.file.photoAccessHelper (相册管理模块)获取相册的方法区别是,系统相册可以在获取的时候弹出一个界面“是否允许获取相册”,api组件获取是组件调用了系统相册能力,用户无感知。