HarmonyOS 获取媒体文件失败13900012?

我们希望自己做一个图片选择器,使用以下官方文档提供的方式编译媒体库

但是提示没有权限。fetchResult fail with error: 13900012, without medialibrary permission

这个api所涉及的权限,不对normal应用开放么?

let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
  fetchColumns: [],
  predicates: predicates
};

photoAccessHelper.getPhotoAccessHelper(this.context).getAssets(fetchOptions, async (err, fetchResult) => {
  if (fetchResult !== undefined) {
    console.info('fetchResult success');
    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    if (photoAsset !== undefined) {
      console.info('photoAsset.displayName : ' + photoAsset.displayName);
    }
  } else {
    console.error(`fetchResult fail with error: ${err.code}, ${err.message}`);
  }
});
阅读 827
1 个回答

ohos.permission.READ\_IMAGEVIDEO 的权限级别是system\_basic,权限的授权方式为user\_grant(用户授权),即开发者在module.json5文件中配置对应的权限后,需要使用接口abilityAccessCtrl.requestPermissionsFromUser去校验当前用户是否已授权。如果是,应用可以直接访问/操作目标对象;否则需要弹框向用户申请授权。

开发步骤:

1、READ\_IMAGEVIDEO 权限为受控开放权限,通常是不允许三方应用申请的。如果有特殊场景需要使用,请提供相关申请材料到应用市场(AGC)申请相应权限证书。申请前请参考受限开发权限列表,确保应用符合可申请的场景。然后再参考申请使用受限权限,完成受限开放权限的申请。

2、在配置文件module.json5中声明权限。

3、向用户申请授权。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/photoaccesshelper-preparation-V5\#申请相册管理模块功能相关权限

申请使用受限权限请参考如下文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/declare-permissions-in-acl-V5

当前可通过DevEco Studio完成ACL方式跨级别申请权限,但该方法仅用于应用调试阶段使用,不可用于发布上架应用市场。如果需要开发商用版本的应用,请在对应的应用市场进行发布证书和Profile文件的申请。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-signing-0000001587684945-V5\#section157591551175916

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进