getActivity / XXPermissions

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

[建议]:特殊权限和危险权限同时申请时,框架先申请特殊权限,后申请危险权限。希望能支持修改,或者按照添加顺序申请。 #292

Closed woomartin closed 4 months ago

woomartin commented 4 months ago

你觉得框架有什么不足之处?【必答】

比如同时申请通知权限和查看应用使用情况权限,期望是先申请通知权限,再申请应用使用情况权限。

issue 是否有人曾提过类似的建议?【必答】

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

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

你觉得该怎么去完善会比较好?【非必答】

No response

getActivity commented 4 months ago

小伙子,你这个建议改造成本有点大,并且会增加性能开销,如果要这么做的话,代码改造工作量是其次的,每申请一个权限就要添加一个透明的 Fragment 进来,这个是不能解决的问题,考虑这个需求不是很常见,建议你选择分开多次调用权限框架来实现这一需求。

getActivity commented 4 months ago
image

至于你说的另外一个问题,不同特殊权限申请顺序的问题,先申请通知权限,再申请应用使用情况权限,我测试过了,会先显示应用使用情况权限设置界面,再显示通知权限设置界面,造成这个问题的原因是,框架确实是按照顺序跳转到对应权限的设置界面,但是由于新的 Activity 会覆盖旧的 Activity,所以你看到的顺序是反着来的,解决这个问题也很简单,你把权限的添加顺序反着来,当然这个是一个临时方案,在下一个版本中,我会优化此问题。

getActivity commented 4 months ago

XXPermissions-18.65.aar.zip

我目前已经做了修改,但是未发布到远程依赖,或者你可以下载上面的 aar 包做为替换进行测试

woomartin commented 4 months ago

新aar 和 反着添加权限 两种方式都尝试了,结果一致。 两台设备仍先申请应用情况使用权限,一台先申请了通知权限。 三星S9 Android10 系统默认授予了通知权限,进入设置手动关闭权限。发起授权,会先申请了通知权限(全屏页面)。 红米Note12和模拟器Pixel4 Android14 会先申请应用情况使用权限(全屏页面),再申请通知权限(弹窗页面)。

image

getActivity commented 4 months ago

小伙子,你说的是两个问题,第一个问题是危险权限和特殊权限申请顺序的问题,第二个问题是不同特殊权限申请顺序的问题,我分别回答了,你回去看清楚。