getActivity / XXPermissions

Android 权限请求框架,已适配 Android 14
Apache License 2.0
5.44k stars 735 forks source link

[Bug]:申请多个权限,点击同意后无限弹窗 #279

Closed NPC2018 closed 1 month ago

NPC2018 commented 1 month ago

框架版本【必填】

18.63

问题描述【必填】

XXPermissions.with(this).permission(Permission.Group.STORAGE) 申请这个权限,点击再使用中允许,然后无限弹窗,窗口提示为:获取权限失败,请手动授予权限的弹窗

复现步骤【必填】

同时申请多个权限,点击同意,然后就无限弹窗

是否必现【必填】

项目 targetSdkVersion【必填】

33

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

小米9和荣耀magic5pro

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

小米9(Android11) 荣耀magic5pro(android14)

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

自己遇到的

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

全部

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

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

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

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

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

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

提供报错堆栈

这是调用的代码
XXPermissions.with(this)
                .permission(Permission.Group.STORAGE)
                .interceptor(new PermissionInterceptor())
                .request(new OnPermissionCallback() {
                    @Override
                    public void onGranted(@NonNull List<String> permissions, boolean allGranted) {
                        if (!allGranted) {
                            toast("获取部分权限成功,但部分权限未正常授予");
                            return;
                        }
                        toast("获取权限成功");
                    }

                    @Override
                    public void onDenied(@NonNull List<String> permissions, boolean doNotAskAgain) {
                        if (doNotAskAgain) {
                            toast("被永久拒绝授权,请手动授予权限");
                            // 如果是被永久拒绝就跳转到应用权限系统设置页面
                          //  XXPermissions.startPermissionActivity(getActivity(), permissions);
                        } else {
                            toast("获取权限失败");
                        }
                    }
                });

提供截图或视频

2 ![Uploading 1.jpg…]()

提供解决方案

No response