XXPermissions icon indicating copy to clipboard operation
XXPermissions copied to clipboard

[Bug]:红米Note7-MIUI12.5.7-Android10读取拨号权限

Open wangjianfengw opened this issue 6 months ago • 44 comments

框架版本【必填】

23.0

问题描述【必填】

该手机拨号权限拒绝或者询问,框架获取到的是以授予

复现步骤【必填】

该手机拨号权限拒绝或者询问,框架获取到的是以授予

是否必现【必填】

项目 targetSdkVersion【必填】

34

出现问题的手机信息【必填】

红米Note7

出现问题的安卓版本【必填】

Android10

问题信息的来源渠道【必填】

自己遇到的

是部分机型还是所有机型都会出现【必答】

该机型

框架最新的版本是否存在这个问题【必答】

框架文档是否提及了该问题【必答】

是否已经查阅框架文档但还未能解决的【必答】

issue 列表中是否有人曾提过类似的问题【必答】

是否已经搜索过了 issue 列表但还未能解决的【必答】

是否可以通过 Demo 来复现该问题【必答】

提供报错堆栈


提供截图或视频

No response

提供解决方案

No response

wangjianfengw avatar Jun 10 '25 07:06 wangjianfengw

你换成原生的 API 看看是不是也有这样问题的?

getActivity avatar Jun 10 '25 07:06 getActivity

没有这样的问题 可以弹出权限选择框

wangjianfengw avatar Jun 10 '25 08:06 wangjianfengw

Image

getActivity avatar Jun 10 '25 08:06 getActivity

https://github.com/user-attachments/assets/e2d90975-34a5-40af-9e4b-8145188a1d92

getActivity avatar Jun 10 '25 08:06 getActivity

针对你的描述,我无法复现到该问题, 你看一下是不是我的复现步骤有问题?

getActivity avatar Jun 10 '25 08:06 getActivity

List<String> permissionList= Arrays.asList(Permission.CALL_PHONE, Permission.READ_PHONE_STATE); 请求权限集合,无法弹出请求框

wangjianfengw avatar Jun 10 '25 09:06 wangjianfengw

我现在有两个问题:

  1. 你申请拨号权限带上 CALL_PHONE 权限我可以理解,但是带上 READ_PHONE_STATE 这个权限的原因和作用在哪里?
  2. 再次确认一下你前面说的用原生 API 没有问题,你确定也是用这两个权限一起申请的?系统的 API 没有问题,但是框架有问题?

getActivity avatar Jun 10 '25 09:06 getActivity

我需要监听挂断状态 原生的刚试了 没问题 其他手机没问题 就这个手机不行

wangjianfengw avatar Jun 10 '25 09:06 wangjianfengw

我需要监听挂断状态 原生的刚试了 没问题 其他手机没问题 就这个手机不行

你的意思是原生 API 在这个手机上面也是有问题?

getActivity avatar Jun 10 '25 10:06 getActivity

原生没问题

wangjianfengw avatar Jun 10 '25 10:06 wangjianfengw

原生请求的两个权限是可以的

wangjianfengw avatar Jun 10 '25 10:06 wangjianfengw

我需要监听挂断状态 原生的刚试了 没问题 其他手机没问题 就这个手机不行

那你这里为什么说《其他手机没问题 就这个手机不行》?前后不是自相矛盾?

getActivity avatar Jun 10 '25 10:06 getActivity

我的意思是你的框架 其他手机可以 这个手机不行

wangjianfengw avatar Jun 10 '25 10:06 wangjianfengw

Image

getActivity avatar Jun 10 '25 10:06 getActivity

https://github.com/user-attachments/assets/1b4357be-8bef-4183-8d09-e7dad55d7fa2

getActivity avatar Jun 10 '25 10:06 getActivity

为什么我用原生 API 一起申请这两个权限也不行?

getActivity avatar Jun 10 '25 10:06 getActivity

private val requiredPermissions = arrayOf( Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE )

// 检查权限并请求 fun checkAndRequestPhonePermissions(context: Activity) { val deniedPermissions = requiredPermissions.filter { ContextCompat.checkSelfPermission(context, it) != PackageManager.PERMISSION_GRANTED }

if (deniedPermissions.isNotEmpty()) {
    ActivityCompat.requestPermissions(context, deniedPermissions.toTypedArray(), REQUEST_CODE_CALL_PHONE_PERMISSIONS)
} else {
    onPhonePermissionsGranted()
}

} 我这样可以

wangjianfengw avatar Jun 10 '25 11:06 wangjianfengw

XXPermissions.with(this) .permission(Permission.CALL_PHONE) .permission(Permission.READ_PHONE_STATE) .interceptor(new PermissionInterceptor()) .description(new PermissionDescription()) .request(new OnPermissionCallback() {

                    @Override
                    public void onGranted(@NonNull List<String> permissions, boolean allGranted) {
                        if (!allGranted) {
                            return;
                        }
                        toast(String.format(getString(R.string.demo_obtain_permission_success_hint),
                                PermissionConverter.getNamesByPermissions(MainActivity.this, permissions)));
                    }
                });

框架这样也不行

wangjianfengw avatar Jun 10 '25 11:06 wangjianfengw

Image

getActivity avatar Jun 10 '25 12:06 getActivity

@wangjianfengw 我针对这个问题进行了优化,你下载上面的 aar 包看看问题是否被解决?

getActivity avatar Jun 10 '25 12:06 getActivity

如果发现还有问题,可能是系统对权限授予有缓存,你先卸载应用再安装看看。

getActivity avatar Jun 10 '25 12:06 getActivity

谢谢 已解决

wangjianfengw avatar Jun 11 '25 00:06 wangjianfengw

引发了另一个问题 在华为手机上 val permissions = arrayListOf( Permission.CALL_PHONE, Permission.READ_PHONE_STATE, Permission.READ_CALL_LOG, Permission.READ_PHONE_NUMBERS, Permission.MANAGE_EXTERNAL_STORAGE ) 申请这些权限 MANAGE_EXTERNAL_STORAGE权限无法获取

wangjianfengw avatar Jun 11 '25 03:06 wangjianfengw

你把 23.0 和 23.2 申请这几个权限的录屏给我

getActivity avatar Jun 11 '25 06:06 getActivity

23.2

https://github.com/user-attachments/assets/36683339-a123-4868-be09-3bb215761a19

wangjianfengw avatar Jun 11 '25 06:06 wangjianfengw

23.0

https://github.com/user-attachments/assets/c75e8d4e-4af6-4a98-8eac-172f67775e96

wangjianfengw avatar Jun 11 '25 06:06 wangjianfengw

https://github.com/user-attachments/assets/448767d5-bf16-4122-9f87-dd68cd9b68e3

getActivity avatar Jun 11 '25 06:06 getActivity

我用 23.2 的版本在小米手机 12 & Android 12 上面做测试,没有发现你说的这个问题,你看一下是不是某个手机的问题?

getActivity avatar Jun 11 '25 06:06 getActivity

华为mate20 pro 鸿蒙4.0 安卓10

wangjianfengw avatar Jun 11 '25 06:06 wangjianfengw