我想知道,如何知道用户检查"再也不要问"在致电requestPermissions
之前。
我已经完成了Android M - check runtime permission - how to determine if the user checked "Never ask again"?但尚未获得正确的解决方案。
在此之前,请允许我解释一下我的动机。
我有以下反馈对话框表单。
当用户选中回复我 明确时,如果尚未授予权限,我将执行requestPermissions
。可能有3种可能的结果。
requestPermissions
时会发生requestPermissions
第二次或更长时间不会显示任何对话框。 requestPermissions
永远不会弹出任何对话框。我需要代表用户取消选中该复选框,因为onRequestPermissionsResult
会告诉我权限被拒绝。
第三个结果会产生糟糕的用户体验。当用户勾选复选框时,它将立即解开。
我想在显示反馈表之前隐藏回复我。要做到这一点,我需要知道用户是否已经检查过#34;永远不要再问'#34;。
shouldShowRequestPermissionRationale
并没有多大帮助。因为,shouldShowRequestPermissionRationale
将在2个案例中返回false
requestPermissions
。我找不到区分两者的方法。
答案 0 :(得分:0)
当您请求权限时,请将布尔值shared preference保存为true。然后,您将能够检查其值,以了解您是否已经请求了许可,并且知道shouldShowRequestPermissionRationale()
是否因为您之前从未询问过或因为他们再也没有说过或者因为许可是被设备政策禁用。