后台位置信息使用情况

Android 14 (Android U) 针对在后台访问用户位置信息的应用引入了新限制。为帮助缓解这些变化,Navigation SDK 已在版本 5.3.2 中更新,以更好地管理后台位置信息访问权限。我们还建议您更新实现,以确保您的应用可以继续访问最精确的位置数据。

Android 14 中的变更对 Navigation SDK 有何影响

当您在应用中调用 startGuidance() 时,前台服务会开始显示精细导航的用户通知。精细导航的前提是能够获取用户的位置信息,以便更新路线并显示正确的视觉和音频导航。从 Android 14 开始,在后台访问用户的确切位置信息需要用户授予的权限。默认情况下,如果应用不具备用户的后台位置信息访问权限,并尝试启动前台服务以获取位置信息更新,系统会抛出 SecurityException,导致应用崩溃。

Navigation SDK 如何缓解此问题

从版本 5.3.2 开始,Navigation SDK 会处理此 SecurityException,而不会影响应用,从而允许导航在后台继续运行。此外,Navigation SDK 在其 AndroidManifest 中包含 ACCESS_BACKGROUND_LOCATION 权限。这样一来,您的应用就不需要声明权限本身,因为 Gradle 合并将负责处理该权限。不过,如果在应用进入后台之前未向用户显示通知,则 Navigation SDK 将依赖系统提供位置信息更新。此类系统更新可能不频繁或不精确,导致导航体验不佳。因此,我们建议您同时提示用户授予后台位置信息访问权限。

应用开发者可采取哪些措施来提高导航的位置信息精确度

您可以更新应用以提示用户在后台访问位置信息,从而提高 Navigation SDK 使用的位置信号的准确性。该提示应向用户说明,授予该权限将如何提高位置信息精确度并改善应用在后台运行时的导航体验。

权限对话框示例

如需详细了解如何提示用户授予位置信息访问权限,请参阅请求位置信息权限 | 传感器和位置信息 | Android 开发者