请求后台位置信息

本页面讨论以下内容

  • 如何请求后台位置信息访问权限。
  • 如何根据您应用的目标 SDK 版本处理请求。
  • 用户对大致位置信息的偏好设置如何影响应用获取后台位置信息。
图 7. 设置页面包含一个名为始终允许的选项,可授予后台位置信息访问权限。

权限对话框的内容取决于目标 SDK 版本

当应用中的某项功能在运行 Android 10(API 级别 29)的设备上请求后台位置信息时,系统权限对话框会包含一个名为 始终允许 的选项。如果用户选择此选项,应用中的该功能将获得后台位置信息访问权限。

但是,在 Android 11(API 级别 30)及更高版本上,系统对话框不包含始终允许选项。相反,用户必须在设置页面上启用后台位置信息,如图 7 所示。

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

应用的目标平台为 Android 11 或更高版本

如果您的应用尚未获得 ACCESS_BACKGROUND_LOCATION 权限,并且 shouldShowRequestPermissionRationale() 返回 true,请向用户展示教育性界面,其中包括以下内容

  • 清楚说明应用功能为何需要访问后台位置信息。
  • 授予后台位置信息的设置选项的用户可见标签(例如,图 7 中的始终允许)。您可以调用 getBackgroundPermissionOptionLabel() 来获取此标签。此方法的返回值会根据用户的设备语言偏好进行本地化。
  • 用户拒绝此权限的选项。如果用户拒绝后台位置信息访问,他们应该能够继续使用您的应用。
Users can tap the system notification to change location
  settings for an app
图 8. 提醒用户已授予应用后台位置信息访问权限的通知。

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

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

只要您的应用已经遵循请求位置信息权限的最佳实践,就不需要进行任何更改来支持此行为。

用户可能会影响后台位置信息的准确性

如果用户请求大致位置信息,则用户在位置信息权限对话框中的选择也适用于后台位置信息。换句话话说,如果用户授予应用 ACCESS_BACKGROUND_LOCATION 权限但在前台仅授予大致位置信息访问权限,则应用在后台也仅具有大致位置信息访问权限。

其他资源

如需详细了解 Android 中的位置信息权限,请查看以下资料

Codelabs

视频

示例