为了进一步保护用户隐私,Android 11 增加了单次位置信息访问权限,并更改了用户授予在后台访问位置信息权限的方式。这些更新会影响到 Android 11 及更高版本上运行的所有应用。
单次访问权限
图 1. 用于授予前台位置权限的系统对话框,其中包含一个名为仅限这一次的选项。
在 Android 11 及更高版本中,每当应用请求在前台访问位置信息时,系统权限对话框都包含一个名为仅限这一次的选项,如图 1 所示。通过这一选项,用户可以更好地控制应用何时有权访问位置信息。
详细了解系统如何处理单次授权。
在后台访问位置信息的权限
Android 11 更改了应用中的功能获取后台位置信息访问权限的方式。本部分介绍了上述各项变更。
如果应用中的某项功能从后台访问位置信息,请验证此类访问是否有必要,并考虑以其他方式获取该功能所需的信息。如需详细了解在后台访问位置信息的权限,请参阅在后台访问位置信息页面。
单独请求在后台访问位置信息
正如有关如何在运行时请求位置信息访问权限的指南中所述,您应该执行递增位置信息请求。如果您的应用以 Android 11 或更高版本为目标平台,系统会强制执行此最佳做法。如果您同时请求在前台访问位置信息的权限和在后台访问位置信息的权限,系统会忽略该请求,且不会向您的应用授予其中的任一权限。
权限对话框的变更
变更详情
变更名称:BACKGROUND_RATIONALE_CHANGE_ID
变更 ID:147316723
如何切换
在测试应用与 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 的兼容性。
在搭载 Android 11 或更高版本的设备上,您的应用中的某项功能请求在后台访问位置信息时,系统对话框不会包含用于启用在后台访问位置信息权限的按钮。如需启用在后台访问位置信息的权限,用户必须在设置页面上针对应用的位置权限设置一律允许选项,如介绍如何请求在后台访问位置信息的指南中所述。