Google 致力于为黑人社区推动种族平等。查看具体举措

Android 11 中的位置信息更新

为了进一步保护用户隐私,Android 11 增加了单次位置信息访问权限,并更改了用户授予后台位置信息访问权限的方式。这些更新会影响到 Android 11 上运行的所有应用。

单次访问权限

图 1. 用于授予前台位置权限的系统对话框,其中包含一个名为仅限这一次的选项。

在 Android 11 中,每当应用请求访问前台位置信息时,系统权限对话框都包含一个名为仅限这一次的选项,如图 1 所示。通过这一新选项,用户可以更好地控制应用何时有权访问位置信息。

详细了解 Android 11 中的权限变更

后台位置信息访问权限

Android 11 更改了应用中的功能获取后台位置信息访问权限的方式。本部分介绍了上述各项变更。

单独请求在后台访问位置信息

正如有关如何在运行时请求位置信息访问权限的指南中所述,您应该执行递增位置信息请求。如果应用以 Android 11 为目标平台,系统会强制执行此最佳做法。如果您同时请求前台位置信息和后台位置信息,系统会忽略该请求。

权限对话框的变更

变更详情

变更名称BACKGROUND_RATIONALE_CHANGE_ID

变更 ID147316723

如何切换

在测试应用与 Android 11 的兼容性时,您可以使用以下 ADB 命令开启或关闭此变更:

adb shell am compat enable (147316723|BACKGROUND_RATIONALE_CHANGE_ID) PACKAGE_NAME
adb shell am compat disable (147316723|BACKGROUND_RATIONALE_CHANGE_ID) PACKAGE_NAME

如需详细了解兼容性框架以及如何切换变更的状态,请参阅测试应用与 Android 11 的兼容性

图 2. 设置页面包含一个名为一律允许的选项,用于授予后台位置信息访问权限。

在搭载 Android 11 的设备上,当应用中的某项功能请求在后台访问位置信息时,用户看到的系统对话框不再包含用于启用后台位置信息访问权限的按钮。如需启用后台位置信息访问权限,用户必须在设置页面上针对应用的位置权限设置一律允许选项,如图 2 所示。

在针对后台位置信息请求运行时权限时,您可以遵循最佳做法,帮助用户导航到此设置页面。授予权限的过程取决于应用的目标 SDK 版本。

以 Android 11 为目标平台的应用

如果 shouldShowRequestPermissionRationale() 返回 true,请向用户显示包含以下内容的指导界面:

  • 明确说明应用功能需要在后台访问位置信息的原因。
  • 用于授予后台位置权限的设置选项(例如,图 2 中的一律允许)的用户可见标签。您可以调用 getBackgroundPermissionOptionLabel() 获取此标签。此方法的返回值会根据用户设备的语言偏好设置进行本地化。
  • 供用户拒绝授予权限的选项。如果用户拒绝应用在后台访问位置信息,他们应该能够继续使用应用。

以 Android 10 或更低版本为目标平台的应用

当应用中的某项功能请求后台位置信息访问权限时,用户会看到一个系统对话框。此对话框包含一个选项,可用于导航到设置页面上的应用位置权限选项。

如果应用已遵循有关请求位置权限的最佳做法,您无需对应用进行任何更改即可让此新行为生效。