Android 14 (Android U) 推出了 限制 应用会在后台获取用户位置信息帮助缓解这些问题 5.4.0 版中更新了 Navigation SDK,以更好地管理 后台位置信息访问权限。我们还建议您更新 确保您的应用始终都能 精确的位置数据。
Android 14 中的变更对 Navigation SDK 的影响
在调用
startGuidance()
之后,该前台服务开始显示
精细导航。精细导航取决于能否
获取用户的位置信息,以便更新路线并显示正确的
视觉和音频指导。从 Android 14 开始,在后台访问用户的精确位置信息需要用户授予权限。默认情况下,如果
应用未获得用户授予后台位置信息访问权限的权限,并且
尝试启动前台服务来获取位置信息更新,则系统会抛出
SecurityException
,导致应用崩溃。
Navigation SDK 如何缓解此问题
从版本 5.4.0 开始,Navigation SDK 会处理此 SecurityException
在不影响应用的情况下,允许导航在
背景。此外,Navigation SDK 还包含
ACCESS_BACKGROUND_LOCATION
权限。AndroidManifest
这样,您的应用无需自行声明权限,因为 Gradle 合并将会处理该权限。但是,如果在应用运行前没有向用户显示通知
Navigation SDK 将依赖系统来提供
位置更新。这些系统更新可能不频繁或不精确,从而导致导航体验欠佳。因此,我们建议您
提示用户授予后台位置信息访问权限。
应用开发者可采取哪些措施来提高导航时的位置信息精确度
您可以提高 Navigation SDK 所用位置信号的准确性 更新您的应用以提示用户在后台获取位置信息。提示 应向用户说明授予权限会如何改进定位功能 并改进应用在移动应用中运行时的导航体验 背景。
如需详细了解如何提示用户授予位置信息访问权限,请参阅请求 位置信息权限 |传感器和位置 |Android 设备 开发者。