用户可以通过点击“返回”按钮取消权限请求。自Android 11起,用户还可以点击权限对话框外部来取消。当权限被取消时,该权限将不会被授予,shouldShowPermissionRationality()将返回false,这意味着应用可以再次调用requestPermissions()。
当用户在Android 11中选择“不再询问”或两次拒绝某个权限时,shouldShowPermissionRationale()也将返回false。但如何区分“不再询问”和“已取消”状态?
我需要区分这两种状态是因为如果用户之前取消了权限,我知道我仍然有机会向他们提示系统权限对话框。但如果用户选择不再请求权限,我需要引导他们到应用信息页面手动授予权限。
1条答案
按热度按时间6ljaweal1#
这不是这个问题的直接解决方案,因为似乎没有办法得到它。
然而,我已经意识到,有一种方法,Android将告诉我们,如果我们需要显示
RationaleDialog
给我们的用户,没有任何工作,从我们的结束(之前,我的印象是,我们需要保持跟踪这一点自己)。只要调用
activity.shouldShowRequestPermissionRationale(permission)
,它就会自己处理所有回叫。