shouldShowRequestPermissionRationale 为假

shouldShowRequestPermissionRationale is false

我向我的应用程序添加了位置权限。现在安装应用程序时,它会询问用户的许可。这是我的代码:

if (fragment.shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_FINE_LOCATION) {
    fragment.requestPermissions(....);
}

但是当我安装了我以前的应用程序版本时,我没有这个位置权限并更新应用程序然后它不会请求权限,因为

fragment.shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_FINE_LOCATION

returns false

通常只有在用户单击 "never ask again" 时才 return 为 false。我在这里错过了什么?

shouldShowRequestPermissionRationale() 也 returns false 如果用户以前从未被请求过权限。这就是为什么理想情况下,您首先请求许可,然后通过 onRequestPermissionsResult 检查许可结果对象是什么,并在任何后续请求之后检查 shouldShowRequestPermissionRationale() 以查看用户是否检查了不再询问选项。

编辑- 检查此答案中的示例: