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"参数正是为此设计,但实际使用中仍可能遇到权限问题。

根据你的代码和错误信息,问题可能源于:

  1. 权限配置缺失:在manifest.json中需要声明READ_MEDIA_IMAGES权限,即使照片选择器理论上不需要它。添加以下配置:
"android": {
  "permissions": [
    "READ_MEDIA_IMAGES"
  ]
}
回到顶部