HarmonyOS鸿蒙Next中提审被拒,对ohos.permission.READ_IMAGEVIDEO权限,但未提供必须且有效利用此权限的功能场景,不符合相关法律法规要求,该如何解决呢

HarmonyOS鸿蒙Next中提审被拒,对ohos.permission.READ_IMAGEVIDEO权限,但未提供必须且有效利用此权限的功能场景,不符合相关法律法规要求,该如何解决呢 提审被拒,对【ohos.permission.READ_IMAGEVIDEO】权限,但未提供必须且有效利用此权限的功能场景,不符合相关法律法规要求,该如何解决呢,又如何做url持久化处理呢

12 回复

尊敬的开发者,您好!
关于您提出的URL持久化处理问题
请问您是在什么样的业务场景中使用该能力,交互流程是怎样的

更多关于HarmonyOS鸿蒙Next中提审被拒,对ohos.permission.READ_IMAGEVIDEO权限,但未提供必须且有效利用此权限的功能场景,不符合相关法律法规要求,该如何解决呢的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


就是卡得严。官方有替代的相册图片视频选取组件,不需要审核也对用户隐私安全更友好,可以试试。

READ_IMAGEVIDEO 属于比较敏感的全量媒体读取权限。若业务只是让用户选择一张/几张图片或视频,优先改用 PhotoPicker/系统选择器这类用户主动授权的方式,通常不需要申请全量读取相册权限。

如果确实必须持续访问相册媒体,要在产品里有明确、可触达、与核心功能强相关的场景,并在权限弹窗前说明用途,隐私政策也要对应。否则审核看到“申请了权限但没有必须且有效使用场景”,就会倾向判定过度索权。

尊敬的开发者,您好,
关于您反馈的问题

【ohos.permission.READ_IMAGEVIDEO】权限仅允许在少数特殊场景下申请使用,例如应用需要批量读取媒体库的文件(图片、视频)并同步到云端服务器,或在设备间进行同步或克隆操作

其他场景下可以使用“PhotoViewPicker”访问用户图片或视频,使用方式请参考:使用Picker选择媒体库资源

卡得很严的

目前官方有替代的相册图片视频选取PhotoPicker组件,不需要审核,对用户隐私安全也友好,,

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17,

用安全控件吧,url放首选项也可以

期待HarmonyOS能在未来带来更多创新的技术和理念。

读取图片视频可以使用photopicker能力

在HarmonyOS NEXT中,需在应用内明确展示调用ohos.permission.READ_IMAGEVIDEO权限的功能界面(如选择图片/视频上传、编辑等),并在隐私政策中声明具体使用场景及必要理由。提交审核时附上对应功能截图或录屏,以证明权限用于用户主动触发的核心功能。

若因ohos.permission.READ_IMAGEVIDEO权限被拒,需移除不必要的权限申请,改用无需权限的photoAccessHelper.PhotoViewPicker让用户主动选择图片视频,通过photoAccessHelper获取临时URI后立即将文件复制到应用沙箱目录进行持久化。

持久化处理示例:

import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { fileIo } from '@kit.CoreFileKit';
import { contextConstant } from '@kit.AbilityKit';

// 通过PhotoViewPicker选择
let picker = new photoAccessHelper.PhotoViewPicker();
let result = await picker.select();

for (let uri of result.photoUris) {
  // 打开临时文件
  let srcFile = fileIo.openSync(uri);
  // 拼装沙箱持久化路径
  let destPath = getContext().filesDir + '/images/' + Date.now() + '.jpg';
  // 创建目录(如不存在)
  fileIo.mkdirSync(getContext().filesDir + '/images', true);
  // 复制内容
  let destFile = fileIo.openSync(destPath, fileIo.OpenMode.CREATE | fileIo.OpenMode.WRITE_ONLY);
  let buf = new ArrayBuffer(4096);
  let len;
  while ((len = fileIo.readSync(srcFile.fd, buf)) > 0) {
    fileIo.writeSync(destFile.fd, buf.slice(0, len));
  }
  fileIo.closeSync(srcFile);
  fileIo.closeSync(destFile);
  // 持久化后的URI:file://<sandbox>/files/images/<timestamp>.jpg
}

这样既无需敏感权限,也能满足审核要求。

回到顶部