为进一步保护用户隐私,Android 11 增加了单次位置信息访问权限,并改变了用户授予后台位置信息访问权限的方式。这些更新影响所有在 Android 11 及更高版本上运行的应用。
单次访问
在 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 或更高版本的设备上请求后台位置信息时,系统对话框不包含用于启用后台位置信息访问的按钮。为了启用后台位置信息访问,用户必须在设置页面上将应用的地理位置权限设置为始终允许选项,如请求后台位置信息指南所述。
更多资源
如需详细了解如何访问后台位置信息,请查看以下资料