HarmonyOS 鸿蒙Next 关闭APP相机权限后使用photoAccessHelper.PhotoViewPicker()组件仍可打开相机拍照

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

HarmonyOS 鸿蒙Next 关闭APP相机权限后使用photoAccessHelper.PhotoViewPicker()组件仍可打开相机拍照

因APP扫一扫页面可申请相机权限,权限打开后,再操作设置-应用和元服务-xxx,将相机权限关闭。
此时用以下代码,打开相册页面,点击左上角的拍照入口,有没有办法识别当前APP未开启相机权限,可拦截住不打开相机页面?

//打开相册
const photoViewPicker = new photoAccessHelper.PhotoViewPicker();
const photoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
photoSelectOptions.maxSelectNumber = 1;
photoViewPicker.select(photoSelectOptions).then(async (photoSelectResult: picker.PhotoSelectResult) => {
let selectUris: Array<string> = photoSelectResult.photoUris;
hilog.info(HiLogType.webSDK.domain, HiLogType.webSDK.tag,
“photoViewPicker.select to file succeed and uris are: %{public}s”, selectUris)
if (selectUris.length > 0) {
this.getBase64Image(selectUris[0], fuctionName)
} else {
this.requestFailure(fuctionName)
}

}).catch((err: BusinessError) => {
this.requestFailure(fuctionName)
hilog.info(HiLogType.webSDK.domain, HiLogType.webSDK.tag,
“Invoke photoViewPicker.select failed, code is %{public}s, message is %{public}s”, err.code, err.message)
})


更多关于HarmonyOS 鸿蒙Next 关闭APP相机权限后使用photoAccessHelper.PhotoViewPicker()组件仍可打开相机拍照的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
上述代码在相册中拉起相机,本身不需要相机权限就可以拉起相机,Camera Kit需要申请相机权限才可以拉起相机,详细可参考:

Camera Kit        https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/camera-kit-V5

获取已授权的权限列表可使用bundleManager.getBundleInfoForSelfSync

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-bundlemanager-V5#bundlemanagergetbundleinfoforselfsync10

是想要什么代码,使用Camera Kit拉起相机的代码吗

使用Camera kit实现相机拍照可参考完整示例:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/camera-shooting-case-V5

更多关于HarmonyOS 鸿蒙Next 关闭APP相机权限后使用photoAccessHelper.PhotoViewPicker()组件仍可打开相机拍照的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,若已关闭APP的相机权限,理论上photoAccessHelper.PhotoViewPicker()组件应无法直接打开相机进行拍照。此行为违背了权限管理机制,即用户明确拒绝权限后,应用不应绕过此限制访问相机。

可能的原因包括:

  • 系统或应用存在漏洞,导致权限管理未严格执行。
  • photoAccessHelper.PhotoViewPicker()组件内部实现有异常,未正确检查权限状态。
  • 权限管理策略在特定版本或特定条件下被绕过。

解决方案:

  • 确认APP已正确请求并处理相机权限,包括在权限被拒绝时的逻辑处理。
  • 检查photoAccessHelper.PhotoViewPicker()组件的官方文档或源码,确认其权限检查逻辑。
  • 尝试更新HarmonyOS系统至最新版本,以修复可能的系统漏洞。
  • 重启设备,有时权限状态可能因系统缓存问题未即时更新。

若上述步骤无法解决问题,表明可能是系统或组件的深层次问题。此时,建议直接联系官方客服进行反馈,以便开发者或系统维护团队进行修复。

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

回到顶部