像素方舟_青阳
像素方舟_青阳
  • 发布:2023-01-05 17:40
  • 更新:2023-02-06 17:49
  • 阅读:2702

【报Bug】配置 targetSdkVersion 为33后,在安卓13下 uni.chooseImage 提示无权限

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 13.0.1 (22A400)

HBuilderX类型: 正式

HBuilderX版本号: 3.6.15

手机系统: 全部

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

Android 13 [attach]104421[/attach]

示例代码:
<template>  
  <view class="content">  
    <button @click="onPermission">请求动态权限</button>  
    <button @click="onPhoto">打开相册</button>  
  </view>  
</template>  

<script>  
  export default {  
    methods: {  
      onPhoto() {  
        uni.chooseImage({  
          count: 1,  
          success(res) {  
            console.log('uni.chooseImage success', res)  
          },  
          fail(res) {  
            console.log('uni.chooseImage fail ', res)  
          }  
        })  
      },  
      onPermission() {  
        plus.android.requestPermissions(['android.permission.READ_MEDIA_IMAGES'], function(e) {  
          if (e.deniedAlways.length > 0) { //权限被永久拒绝  
            // 弹出提示框解释为何需要定位权限,引导用户打开设置页面开启  
            console.log('Always Denied!!! ' + e.deniedAlways.toString());  
          }  
          if (e.deniedPresent.length > 0) { //权限被临时拒绝  
            // 弹出提示框解释为何需要定位权限,可再次调用plus.android.requestPermissions申请权限  
            console.log('Present Denied!!! ' + e.deniedPresent.toString());  
          }  
          if (e.granted.length > 0) { //权限被允许  
            //调用依赖获取定位权限的代码  
            console.log('Granted!!! ' + e.granted.toString());  
          }  
        }, function(e) {  
          console.log('Request Permissions error:' + JSON.stringify(e));  
        });  
      }  
    }  
  }  
</script>  

<style>  
  .content {  
    display: flex;  
    flex-direction: column;  
    align-items: center;  
    justify-content: center;  
  }  
</style>  

操作步骤:

修改 manifest.json 并云打包

预期结果:

首次点击弹出授权窗口,授权通过后,允许选择相册

实际结果:

首次点击后,无反应

bug描述:

配置 targetSdkVersion 为33后,在安卓13下 uni.chooseImage 提示没有权限

  1. android.permission.READ_MEDIA_IMAGES 已经配置到 manifest.json 中了
  2. 请求动态权限成功

提示

{  
    "errMsg": "chooseImage:fail No Permission",  
    "errCode": 12,  
    "code": 12  
}
2023-01-05 17:40 负责人:无 分享
已邀请:

最佳回复

DCloud

DCloud

HBuilderX 3.7.0.20230118-alpha 已修复。

  • M丶J

    看看我这个是不是bug呢?https://ask.dcloud.net.cn/question/181164

    2023-11-08 17:58

  • 7***@qq.com

    我也出现了类似问题,hbuilder版本已是最新

    2024-02-19 21:07

DCloud_Android_DQQ

DCloud_Android_DQQ

android.permission.READ_MEDIA_IMAGES 已经配置到 manifest.json 中了

这个配置发我一下

  • 像素方舟_青阳 (作者)

    对我配置是按照下面配置的,用Hbuilder直接跑没问题,但是制作成自定义基座后有问题,因为我用Android Studio 看HBuilder的默认基座 targetSdkVersion是31。

    2023-01-06 10:51

  • M丶J

    看看我这个是不是bug呢?https://ask.dcloud.net.cn/question/181164

    2023-11-08 17:59

DCloud_Android_DQQ

DCloud_Android_DQQ

你看一下是不是配置有问题。我使用下面的配置,用下面的android 13设备 测试是正常的。

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

像素方舟_青阳

像素方舟_青阳 (作者)

如果是直接默认的真机运行,targetSdkVersion 是31,必须要走自定义基座才可以复现
我这边配置是正常的


这个是自定义基座的包,里面可以看到 AndroidManifest.xml中是33 且包含 READ_MEDIA_IMAGES 权限

附件中是云打包产物,可以测试

像素方舟_青阳

像素方舟_青阳 (作者)

附件是我的 manifest.json 配置

  • s***@163.com

    我按照这个配置了,android端的targetsdk也改成了33,为啥执行chooseimage还是没反应?

    2023-09-07 18:35

像素方舟_青阳

像素方舟_青阳 (作者)

@DCloud_Android_DQQ 已补充,之前的apk太大上传失败

DCloud_Android_DQQ

DCloud_Android_DQQ

bug 已确认,修复中

DCloud_Android_DQQ

DCloud_Android_DQQ

2023-02-06更新:

注意。android 33 需要同时配置两条权限:

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

如果缺失任意一条,可能会导致第一次不生效

  • 1***@qq.com

    如果用户拒绝了,在设置打开一直是拒绝状态

    2024-01-04 21:25

  • 7***@qq.com

    我加了还是 有问题

    2024-02-18 19:10

要回复问题请先登录注册