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

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

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

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

2 回复
使用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}`)
})
}

参考文档:选择用户文件-选择与保存用户文件-用户文件-Core File Kit(文件基础服务)-应用框架 - 华为HarmonyOS开发者 (huawei.com)

更多关于HarmonyOS 鸿蒙Next系统相册权限访问问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


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

  1. 检查权限声明

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

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

    • 应用可拉起系统Picker组件(如照片选择器),由用户在Picker上选择照片等资源。由于此过程由用户操作且可感知,因此无需再申请权限。但注意,此时应用获取到的读取资源权限是临时的。
  4. 检查系统更新

    • 确保鸿蒙Next系统为最新版本,因为系统更新可能修复了与相册权限相关的bug。
  5. 清除缓存和重启设备

    • 清除相机及相册应用的缓存,并重启设备,以解决可能由系统缓存或临时错误导致的权限问题。

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

回到顶部