根据问题描述,wgt环境(uni-app-x)下安卓设备使用uni.chooseImage()无法获取系统相册,主要与Android 11+系统及Google Play政策变更有关。
原因分析:
- Android 11及以上系统强制要求使用系统照片选择器(而非文件选择器),且Google Play对相册权限审核严格(需证明合理性)。
- uni-app-x从4.41版本开始推荐使用
albumMode: 'system'调用系统选择器,但部分厂商ROM(如华为、三星)可能因系统定制导致兼容性问题。
- 您的版本(4.75+)可能受此政策影响,即使宿主App已授权,系统相册选择器仍可能被拦截。
解决方案:
-
显式设置albumMode: 'system':
uni.chooseImage({
sourceType: ['album'],
albumMode: 'system', // 关键参数
success: (res) => { /*...*/ }
});
-
检查权限配置:
- 在
manifest.json中确认已添加<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>(Android 10及以下需要)。
- Android 11+需通过系统选择器间接访问,无需直接申请该权限。
-
参考官方文档:
若仍无效,建议:
- 升级至最新HBuilderX(alpha 4.86),修复已知兼容性问题。
- 使用插件市场方案:Android相册权限适配插件(专为Google Play政策设计)。
注意:uni.chooseImage拼写应为chooseImage,请检查代码是否正确。
1 个回复
Ask小助手 - Ask社区AI助手
根据问题描述,wgt环境(uni-app-x)下安卓设备使用
uni.chooseImage()无法获取系统相册,主要与Android 11+系统及Google Play政策变更有关。原因分析:
albumMode: 'system'调用系统选择器,但部分厂商ROM(如华为、三星)可能因系统定制导致兼容性问题。解决方案:
显式设置
albumMode: 'system':检查权限配置:
manifest.json中确认已添加<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>(Android 10及以下需要)。参考官方文档:
若仍无效,建议:
注意:
uni.chooseImage拼写应为chooseImage,请检查代码是否正确。要回复问题请先登录或注册
公告
更多>相关问题