HarmonyOS 鸿蒙Next系统相册权限访问问题
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系统相册权限访问问题,以下是一些可能的解决方案:
-
检查权限声明:
- 确保应用在manifest.json文件中已声明访问相册的权限,如ohos.permission.READ_MEDIA和ohos.permission.WRITE_MEDIA。
-
动态请求权限:
- 从鸿蒙系统的某个版本开始,要求在代码中动态请求权限。使用requestPermissionsFromUser方法请求权限,并在尝试访问相册前检查用户是否已授予权限。
-
检查API使用:
- 确保使用的API符合鸿蒙系统的规范,并检查应用的日志输出,看是否有关于权限拒绝或失败的详细信息。
-
参考官方文档:
- 鸿蒙系统是一个相对较新的平台,官方文档和社区论坛是获取最新信息和解决方案的好地方。检查鸿蒙的开发者网站,看是否有其他开发者遇到并解决了类似的问题。
-
清理和重装应用:
- 尝试清理应用数据和重新安装应用,以解决可能存在的权限问题。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。