uni-app uni.chooseImage 按照文档意思,custom方式设置为system,提示无权限
uni-app uni.chooseImage 按照文档意思,custom方式设置为system,提示无权限
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 最新 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
手机系统:Android
手机系统版本号:Android 16
手机厂商:三星
手机机型:S23
页面类型:vue
vue版本:vue3
打包方式:云端
App下载地址或H5网址:
https://app.liuyingyong.cn/build/download/a24d5990-9c43-11f0-bf6b-854649957776
示例代码:
uni.chooseImage({
count: 1, //默认9
sourceType: ["album"],
// #ifdef APP-ANDROID
albumMode: "system",
// #endif
sizeType: ["compressed"],
success: function (res) {
// console.log("选择头像", res);
if (res.tempFiles[0].size * 1 < 524288) {
// #ifdef APP-PLUS
compressImage(res.tempFilePaths[0]);
// #endif
// #ifndef APP-PLUS
uploadFileHead(res.tempFilePaths[0]);
// #endif
} else {
const aa = t("editProfile.modal.img2");
// console.log("aa", aa);
uni.showToast({
title: t("editProfile.modal.img2"),
icon: "none",
duration: 2500,
});
}
},
fail: (err) => {
console.log("err: ", JSON.stringify(err));
uni.showToast({
title:
"choose image error.code:" + err.errCode + ";message:" + err.errMsg,
position: "bottom",
});
},
complete: (res) => {
console.log("res", res);
},
});
操作步骤:
uni.chooseImage albumMode 设置为,"system"就可以复现
预期结果:
调起 Android 照片选择器
实际结果:
提示无权限
{
"errMsg": "chooseImage:fail No Permission",
"code": 12
}
bug描述:
Google Play 应用只需访问设备上的媒体文件一次,或者很少访问此类文件,不能申请READ_MEDIA_IMAGES权限,只有核心功能为图片频繁使用才能申请,需要使用Android 照片选择器。
uni-app照片选择器 https://doc.dcloud.net.cn/uni-app-x/api/choose-image.html#%E7%9B%B8%E5%86%8C%E9%80%89%E6%8B%A9%E7%9A%842%E7%A7%8D%E6%96%B9%E5%BC%8F
按照文档意思,custom方式设置为system就可以,并且不需要额外申请权限。
实际测下来,使用后,会直接提示无权限。如果手动去设置中把图片访问权限打开才能正常使用。
更多关于uni-app uni.chooseImage 按照文档意思,custom方式设置为system,提示无权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app uni.chooseImage 按照文档意思,custom方式设置为system,提示无权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在Android 14+系统上,Google Play政策要求应用使用新的照片选择器(Photo Picker)替代传统的存储权限。uni-app的albumMode: "system"参数正是为此设计,但实际使用中仍可能遇到权限问题。
根据你的代码和错误信息,问题可能源于:
- 权限配置缺失:在
manifest.json中需要声明READ_MEDIA_IMAGES权限,即使照片选择器理论上不需要它。添加以下配置:
"android": {
"permissions": [
"READ_MEDIA_IMAGES"
]
}

