Android 11位置权限弹出窗口,用户点击“仅这一次”选项时,为什么操作系统不再询问权限

Jay*_*ree 4 android location permission-denied android-permissions

在 Android OS 11 中,应用程序面向 SDK 30+。当我们第一次请求位置-前景权限时,我们会得到一个带有三个按钮的权限对话框。

在此输入图像描述

根据文件,操作系统仅授予本次权限。

https://developer.android.com/about/versions/11/privacy/permissions#one-time

当我点击“仅限这一次”时。从用户的角度来看,应该再次询问权限。当我回来的时候。但在实际操作系统中授予权限。为什么会发生这种情况。这是系统行为吗?我需要在应用程序端进行任何更改吗?

谢谢期待。

Jay*_*ree 7

在 Android OS 11 中 - 如果我们仅授予 \xe2\x80\x9c 权限 \xe2\x80\x9d。这意味着操作系统正在授予下一段时间的权限。\n当您立即打开应用程序或您的应用程序在后台并再次打开应用程序时,您会发现已授予权限。

\n

如果您在一段时间后回来,您将看到权限未授予。\n权限弹出窗口将再次出现。

\n

关于 Android OS 11 的更多发现:-

\n

直到 Android OS 10,shouldShowRequestPermissionRationale 函数第一次返回 false,但在 OS 11 中,shouldShowRequestPermissionRationale 函数第一次返回 true,并且当用户处于文档中解释的困惑状态时。

\n

直到 android OS 10,如果 shouldShowRequestPermissionRationale 为 true 并且当我们第一次请求权限时,会显示 android OS 权限弹出窗口。之后,如果 shouldShowRequestPermissionRationale 为 false,则不会显示权限弹出窗口。

\n

但在 OS 11 中,无论 shouldShowRequestPermissionRationale 返回 true 还是 false,我们都可以看到弹出窗口。

\n

希望这会对某人有所帮助。如有错误请指正。

\n