1***@163.com
1***@163.com
  • 发布:2026-02-10 18:07
  • 更新:2026-02-10 18:08
  • 阅读:19

【报Bug】vivo手机选择视频,相册却为空

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 4.87

手机系统: Android

手机系统版本号: Android 14

手机厂商: vivo

手机机型: IQOO Neo8 Pro

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

App下载地址或H5⽹址: https://eshoupm.hengshaokeji.com/apk/1.0.2.apk

示例代码:

根据网上提示,也配置了如下权限。

"minSdkVersion": 21,
"targetSdkVersion": 34

"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>"

操作步骤:

打包项目,用vivo手机打开相册选择视频

预期结果:

显示相册视频列表,并能选择视频

实际结果:

相册视频列表为空

bug描述:

vivo和oppo手机在打开相册选择视频时,视频列表为空,但图片的相册却有内容,请问需要怎么处理呢。我用别的手机如华为,荣耀没有这个问题

2026-02-10 18:07 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

【评审结论】

  1. 反馈完整性

    • BUG 描述:已说明“vivo/oppo 选择视频时相册为空,图片正常,华为/荣耀无此问题”,但仍缺少
      – 具体调用的 API(uni.chooseVideo / uni.chooseMedia / plus 原生?)
      – manifest.json 中完整的 “app-plus” → “distribute” → “android” → “permissions” 节点写法
      – 是否使用了自定义 fileProvider 或 FileProvider 冲突
    • 代码示例:仅给出权限字符串,没有调用代码,官方无法直接复现。
    • 复现步骤:缺少“点击哪个按钮→调用哪个方法→期望看到什么界面”的完整链路。
    • 分类信息:已包含版本、机型、系统,符合要求。
  2. BUG 是否成立
    知识库中已明确:

    • Android 13+ 需同时声明 READ_MEDIA_IMAGES 与 READ_MEDIA_VIDEO link
    • 部分 Android ROM(尤其 vivo/oppo)系统相册对“视频”分类做了额外过滤,若未授予 READ_MEDIA_VIDEO 或用户首次拒绝,列表为空。
    • 官方历史修复记录:3.0.0-alpha-4 曾修复“相册选择视频时超过 180M 的文件无法显示” link,说明此类机型兼容性问题确实存在。
      因此 BUG 成立,属于“机型兼容性 + 权限配置”问题,而非误报。
  3. 基本概念问题
    用户已配置 targetSdkVersion 34,需确认是否同时满足以下两点:

    • Android 13+ 新权限 READ_MEDIA_VIDEO 必须写在 manifest.json → app-plus → distribute → android → permissions 数组内,而不是简单写在 manifest.json 根节点。
    • 运行时需动态申请 READ_MEDIA_VIDEO,否则 vivo/oppo 会默认拒绝(与华为/荣耀策略不同)。

【官方建议】

  1. 补充复现 DEMO
    请提供一个最小可运行 demo(仅包含一个按钮调用 uni.chooseMedia / uni.chooseVideo),并贴出完整的 manifest.json 相关段落,方便我们直接运行验证。

  2. 检查并修正权限写法
    在 manifest.json 中按如下格式补充:

    "app-plus": {  
     "distribute": {  
       "android": {  
         "permissions": [  
           "<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>",  
           "<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>"  
         ]  
       }  
     }  
    }  

    然后在应用启动时主动调用

    plus.android.requestPermissions(['android.permission.READ_MEDIA_VIDEO'])  

    确保用户已授权。

  3. 临时替代方案
    若仍无法显示,可先在插件市场搜索 uni-chooseSystemMedia 插件,该插件绕过系统相册,直接读取 MediaStore,可规避部分 ROM 过滤问题。

  4. 后续跟进
    请按以上步骤调整后,如问题依旧,将最小 demo 打包为 zip 并回复本帖,我们安排 vivo/oppo 真机复测。

内容为 AI 生成,仅供参考

要回复问题请先登录注册