如何区分Android运行时权限的“不再询问”状态和“已取消”状态?

l7wslrjt  于 2023-01-15  发布在  Android
关注(0)|答案(1)|浏览(346)

用户可以通过点击“返回”按钮取消权限请求。自Android 11起,用户还可以点击权限对话框外部来取消。当权限被取消时,该权限将不会被授予,shouldShowPermissionRationality()将返回false,这意味着应用可以再次调用requestPermissions()。
当用户在Android 11中选择“不再询问”或两次拒绝某个权限时,shouldShowPermissionRationale()也将返回false。但如何区分“不再询问”和“已取消”状态?
我需要区分这两种状态是因为如果用户之前取消了权限,我知道我仍然有机会向他们提示系统权限对话框。但如果用户选择不再请求权限,我需要引导他们到应用信息页面手动授予权限。

6ljaweal

6ljaweal1#

这不是这个问题的直接解决方案,因为似乎没有办法得到它。
然而,我已经意识到,有一种方法,Android将告诉我们,如果我们需要显示RationaleDialog给我们的用户,没有任何工作,从我们的结束(之前,我的印象是,我们需要保持跟踪这一点自己)。
只要调用activity.shouldShowRequestPermissionRationale(permission),它就会自己处理所有回叫。

相关问题