HarmonyOS 鸿蒙Next系统相册权限访问问题

发布于 1周前 作者 yuanlaile 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next系统相册权限访问问题

在打开PhotoViewPicker前已申请了“ohos.permission.READ_MEDIA”权限,当打开PhotoViewPicker后,再点击拍照功能时没有自动申请“ohos.permission.CAMERA”权限就直接打开的相机。存在合规风险 从相册中选择图片

2 回复

可以在自动申请之前先做个校验的功能,参考链接如下:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/request-user-authorization-V13#开发步骤

使用PhotoViewPicker,打开的是图库基础应用,实际是使用了系统预置的文件选择器的能力,此时无需申请对应的权限即可使用。

比如通过PhotoAccessHelper的PhotoViewPicker选择文件可以使用如下代码:

savePhoto() {
    let selectUris: Array<string> = [];

    // 从图库中选择一张图片
    let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
    PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
    PhotoSelectOptions.maxSelectNumber = 1;

    let photoPicker = new photoAccessHelper.PhotoViewPicker();

    photoPicker.select(PhotoSelectOptions)
        .then(async (PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
            selectUris = PhotoSelectResult.photoUris;
            console.info(`------>PhotoViewPicker.select uri: ` + JSON.stringify(PhotoSelectResult));
        })
        .catch((err: BusinessError) => {
            console.error(`------>PhotoViewPicker.select failed with error: ${err.code}, ${err.message}`);
        });
}

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/select-user-file-V13

针对HarmonyOS 鸿蒙Next系统相册权限访问问题,以下是一些可能的解决方案:

  1. 检查权限声明

    • 确保应用在manifest.json文件中已声明访问相册的权限,如ohos.permission.READ_MEDIA和ohos.permission.WRITE_MEDIA。
  2. 动态请求权限

    • 从鸿蒙系统的某个版本开始,要求在代码中动态请求权限。使用requestPermissionsFromUser方法请求权限,并在尝试访问相册前检查用户是否已授予权限。
  3. 检查API使用

    • 确保使用的API符合鸿蒙系统的规范,并检查应用的日志输出,看是否有关于权限拒绝或失败的详细信息。
  4. 参考官方文档

    • 鸿蒙系统是一个相对较新的平台,官方文档和社区论坛是获取最新信息和解决方案的好地方。检查鸿蒙的开发者网站,看是否有其他开发者遇到并解决了类似的问题。
  5. 清理和重装应用

    • 尝试清理应用数据和重新安装应用,以解决可能存在的权限问题。

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

回到顶部