getActivity / XXPermissions

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

[Bug]:安装成功后,从设置里面设置XXPermission的定位权限为每次使用询问,然后在应用中弹出的定位弹窗中选择禁止,然后进入设置查看XXPermission,发现XXPermission的定位权限还是显示每次使用询问 #285

Open bbe-wang opened 3 weeks ago

bbe-wang commented 3 weeks ago

框架版本【必填】

18.5

问题描述【必填】

1:安装成功后,从设置里面设置XXPermission的定位权限为每次使用询问, 2:然后在应用中弹出的定位弹窗中选择禁止, 3:然后进入设置查看XXPermission,发现XXPermission的定位权限还是显示每次使用询问

复现步骤【必填】

1:安装成功后,从设置里面设置XXPermission的定位权限为每次使用询问, 2:然后在应用中弹出的定位弹窗中选择禁止, 3:然后进入设置查看XXPermission,发现XXPermission的定位权限还是显示每次使用询问

是否必现【必填】

项目 targetSdkVersion【必填】

34

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

vivo s16

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

Android13

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

用户反馈, 其他渠道

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

没有测试 只有一个测试机 是Android13的版本

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

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

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

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

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

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

提供报错堆栈

No response

提供截图或视频

No response

提供解决方案

No response

bbe-wang commented 3 weeks ago

https://github.com/getActivity/XXPermissions/assets/8946098/7e46d51d-7fe9-470d-9442-0c83885ac6ea

getActivity commented 3 weeks ago

小伙子,系统的权限授权框中的禁止有两种含义,一种是本次禁止,另外一种是永久禁止(勾选了不再询问),你在权限设置页看到的禁止,只有永久禁止才会勾选这个选项,在新版的 Android 系统上面,第一次禁止授权并不会使得这个权限被永久禁止掉,只有多次禁止或者勾选了不再询问,才会导致权限被永久禁止。

bbe-wang commented 3 weeks ago

https://github.com/getActivity/XXPermissions/assets/8946098/09b7ccb5-5651-4d69-ab42-62aceb9dbc89 点击禁止不再询问后 设置中的显示 依然是每次使用询问而不是禁止

getActivity commented 3 weeks ago

@bbe-wang 除了 vivo 品牌之外的手机是否有这样的问题?

bbe-wang commented 3 weeks ago

没有其他测试机😭,

getActivity commented 3 weeks ago

@bbe-wang 跑一下厂商的云测机试试

bbe-wang commented 3 weeks ago

好 那我用oppo平台的试试

bbe-wang commented 3 weeks ago

用oppo开放平台测试了四五个手机,显示都正确🤦‍♀️,所以是vivo手机的问题吗,但是vivos16这个手机里的其他应用按照上述方法测试 并不会出现这个问题 都能显示正确

getActivity commented 3 weeks ago

@bbe-wang 是的,这个问题是 vivo 手机厂商的问题,请前往 vivo 开发者平台反馈此问题。

bbe-wang commented 3 weeks ago

但是vivo手机里的其他应用不会有这个问题呀,会不会是需要库做兼容呢

getActivity commented 3 weeks ago

@bbe-wang 你不要拿框架来申请权限,用原生 API 申请权限测试一下。

bbe-wang commented 3 weeks ago

好的 一会我试试

bbe-wang commented 3 weeks ago

https://github.com/getActivity/XXPermissions/assets/8946098/c59e5e2a-79bb-4b3c-8d70-6ebf185db720 使用系统的api写了一个小demo。用的也是vivo s16的手机 按照上述操作 没有出现设置完禁止后 显示成每次使用询问的问题

bbe-wang commented 3 weeks ago

WechatIMG1492 代码是这样的

getActivity commented 3 weeks ago

@bbe-wang 小伙子,你把这段代码拷贝到框架提供的 Demo 工程试一下。

bbe-wang commented 3 weeks ago

好 我试试

bbe-wang commented 3 weeks ago

在获取地理位置那里,将代码换成系统的api ,再按照bug的复现步骤操作,权限完禁止后,设置里面就显示 每次使用询问了。。 ,点击禁止不再询问 显示也不正常

https://github.com/getActivity/XXPermissions/assets/8946098/1d89495f-5ffd-4888-aa03-98e0f2bc4ae1

getActivity commented 3 weeks ago

如果使用原生的 API 还会,这个不就是系统的问题?

bbe-wang commented 3 weeks ago

哥 ,我自己写demo用原生api没问题啊 ,在咱们xxpermision的项目中 把代码替换成原生就有问题了 应该不是系统的问题吧

getActivity commented 3 weeks ago

@bbe-wang 你自己写的 Demo 工程环境跟 XXPermissions Demo 工程环境是不一样的,你如果觉得还是 XXPermissions 导致的,你可以尝试将 XXPermissions Demo 工程将框架的代码删干净,只保留原生 API 来申请权限,看看是否有同样的问题?

bbe-wang commented 3 weeks ago

将 XXPermissions Demo 工程去掉了library的引用,MainActivity只保留原生 API 来申请权限,还是有同样的问题

bbe-wang commented 3 weeks ago

@bbe-wang 你自己写的 Demo 工程环境跟 XXPermissions Demo 工程环境是不一样的,你如果觉得还是 XXPermissions 导致的,你可以尝试将 XXPermissions Demo 工程将框架的代码删干净,只保留原生 API 来申请权限,看看是否有同样的问题?

1:我自己新建demo 用原生api调用 显示正常,至少可以排除不是系统的问题吧(/ω\), 2:我自己的项目里面直接引用implementation 'com.github.getActivity:XXPermissions:18.5',然后使用XXPermission调用定位权限显示也有问题。 3:我用XXPermission的官网的demo测试定位显示会有问题。 4: 我将XXPermission官网的demo中的代码替换成原生api调用权限 显示有问题

以上是我做的测试 还请大佬帮帮忙 看看到底是哪里的问题

getActivity commented 3 weeks ago

@bbe-wang 你换其他的手机都不会,所以是厂商的问题。