HarmonyOS 鸿蒙Next使用uri数组批量获取图片信息失败,DataSharePredicates.in报错medialibrary inner fail

发布于 1周前 作者 eggper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next使用uri数组批量获取图片信息失败,DataSharePredicates.in报错medialibrary inner fail 使用uri数组批量获取图片信息失败,DataSharePredicates.in报错medialibrary inner fail:

new dataSharePredicates.DataSharePredicates().in(photoAccessHelper.PhotoKeys.URI, uriList)

用DataSharePredicates.equalTo获取单图数据没问题:

new dataSharePredicates.DataSharePredicates().equalTo(photoAccessHelper.PhotoKeys.URI, uri)

更多关于HarmonyOS 鸿蒙Next使用uri数组批量获取图片信息失败,DataSharePredicates.in报错medialibrary inner fail的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

我目前也遇到一模一样的问题了~~ 估计是需要申请ACL权限才行。

https://developer.huawei.com/consumer/cn/forum/topic/0204146920829505020?fid=0109140870620153026

更多关于HarmonyOS 鸿蒙Next使用uri数组批量获取图片信息失败,DataSharePredicates.in报错medialibrary inner fail的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


获取相册全部资源:

async getAllPhotos():Promise<photoAccessHelper.PhotoAsset>[] {
  console.info('getAssets');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await this.phAccessHelper.getAssets(fetchOptions);
    let photoAssets: photoAccessHelper.PhotoAsset[] = await fetchResult.getAllObjects();
    return photoAssets;
  } catch (err) {
    console.error('getAssets failed, message = ', err);
    return [];
  }
}

针对您提到的HarmonyOS鸿蒙Next系统中使用uri数组批量获取图片信息时,DataSharePredicates.in方法报错“medialibrary inner fail”的问题,这通常与媒体库访问权限或URI格式不正确有关。

  1. 检查权限:确保您的应用已正确申请并获得了访问媒体库的权限。在鸿蒙系统中,这通常涉及到在config.json中声明必要的权限,并在运行时请求用户授权。

  2. URI格式:验证您传递给DataSharePredicates.in方法的URI数组格式是否正确。URI需要是指向媒体库中具体资源的有效路径,且每个URI都应符合鸿蒙系统的URI规范。

  3. API使用:确认您使用的API版本与鸿蒙系统版本兼容。有时候,API的某些行为在新版本中可能有所改变。

  4. 错误处理:检查代码中是否有适当的错误处理逻辑,以便在访问媒体库失败时能够捕获并适当响应错误。

如果上述检查后问题依旧存在,可能是由于系统内部bug或特定环境下的兼容性问题。此时,建议直接联系鸿蒙系统的官方技术支持团队进行进一步排查。

如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html

回到顶部