Driver SDK for Android 版本说明

本部分包含 Android 版 Driver SDK 的版本说明。

v7.1.0(2026 年 5 月 14 日)

依赖项和配置变更

  • 添加了 Jetpack DataStore 依赖项:androidx.datastore:datastore-core 版本 1.1.7 和 androidx.datastore:datastore-guava 版本 1.2.0。

  • 将 Kotlin 依赖项版本升级到了 v2.3.0。

  • 将 Android Gradle 插件版本升级到了 8.13.2。

  • 将 Gradle 版本升级到了 8.13。

  • 将 Desugar 库版本升级到了 2.1.5。

  • 将支持的 Navigation SDK 版本范围从 [7.0, 7.3) 扩大到 [7.0, 8.0)。

v7.0.0(2025 年 12 月 5 日)

依赖项和配置变更

  • 将 minSdkVersion 升级到了 API 26。

  • 将 targetSdkVersion 升级到了 API 36。

  • 更新了 Navigation SDK 支持的版本范围,包括 v7.0.0 及更高版本。

v6.99.0(2025 年 12 月 5 日)

  • 内部改进

公告:冻结对 API 级别 23、24 和 25 的支持

根据移动操作系统版本支持政策,在即将发布的 Driver SDK for Android 主要版本中,我们将冻结对 Android 6 和 7(API 级别 23、24 和 25)的支持。

从 v7.0.0 开始,Android 版 Driver SDK 将支持最低 Android 8(API 级别 26)。旧版 SDK 将继续支持 Android 6 和 7。

如果您的依赖项未指定版本号,IDE 将加载最新的 SDK 版本,并且您应用的新 build 将不支持 Android 6 和 7。

在应用的 build 依赖项中为 Driver SDK for Android 指定版本,以便控制何时提高您的应用新版本支持的最低操作系统版本。

v6.2.0(2025 年 6 月 18 日)

问题修复

  • 修复了未提供 DriverStatusListener 时调用 DriverApi.createInstance() 导致的 NullPointerException 崩溃问题。

依赖项和配置变更

  • 从 Driver SDK for Android 6.2.0 版开始,应用必须升级到 Kotlin 2.1。

  • 更新了 Navigation SDK 支持的版本范围,包括 v6.1.0 及更高版本。

v6.1.0(2025 年 3 月 10 日)

问题修复

  • 改进了内部日志记录。

v5.99.1(2025 年 1 月 10 日)

问题修复

  • 修复了以下问题:司机收到 gRPC 错误,代码为“INTERNAL”,并显示“Panic! This is a bug!”说明。

v6.0.0(2024 年 11 月 25 日)

问题修复

  • 修复了以下问题:驱动程序收到代码为“INTERNAL”的 gRPC 错误,并显示“Panic!这是一个 bug!”说明。
  • 进行了内部改进,以减少位置信息更新连接错误,尤其是在设备切换网络时。集成发布版本后,此版本将逐步发布(从 0% 开始)。

API 更新

  • 移除了已弃用的接口 StatusListener。

依赖项和配置变更

  • 移除 POM.xml 中对 glide:cronet-integration 的依赖项
  • 将 Navigation SDK 支持的版本范围更新为 v5.x。
  • 从 Driver SDK for Android 6.0.0 版开始,应用必须升级到 Kotlin 2.0。
  • targetSdk 现在为 API 级别 34。这是自 2024 年 8 月起部署到 Google Play 商店的所有应用都必须满足的要求。请参阅满足 Google Play 的目标 API 级别要求。

v5.99.0(2024 年 9 月 20 日)

问题修复

  • 修复了以下问题:驱动程序收到代码为“INTERNAL”的 gRPC 错误,并显示“Panic!This is a bug!”(这是一个 bug!)说明。集成版本后,此功能将逐步推出(从 0% 开始)。
  • 内部改进,可减少位置信息更新连接错误,尤其是在设备切换网络时。发布版本集成后,此功能将逐步推出(从 0% 开始)。

依赖项和配置变更

  • 移除 POM.xml 中对 glide:cronet-integration 的依赖项

v5.0.0(2023 年 9 月 12 日)

依赖项和配置变更

  • 将 Navigation SDK 更新到了 v5.x。
  • 将 minSdkVersion 升级到了 API 23。
  • 将 Kotlin 版本升级到了 1.9.0。
  • 添加了对 Room 的依赖项。 * 使用 Driver SDK 的应用现在必须具有 targetSdkVersion API 31 或更高级别。
  • 使用 Driver SDK 的应用现在必须启用 Java 8 库支持。如需查看更新说明,请访问 https://developer.android.com/studio/write/java8-support。
  • 使用 Proguard 或 Dexguard 的应用必须迁移到 R8。如需了解详情,请参阅 https://developer.android.com/build/shrink-code。
  • 使用 Driver SDK 的应用必须启用脱糖。如需查看相关说明,请参阅 https://developer.android.com/studio/write/java8-support#library-desugaring。

问题修复

  • 修复了 disableLocationTracking 同步方面的问题。
  • 引入了新的 DriverStatusListener 接口,用于在异常状态更新中报告原因。
  • 修复了驱动程序保持静止状态的问题(从 v4.99.0 开始提供)。

v4.99.0(2023 年 8 月 9 日)

  • 支持 NavSDK 依赖项的多个版本。 ** 支持 v4.5.0 到 v5.0.0(不含)。
  • 防止车辆静止时预计到达时间自行缩短。这项更改将作为实验逐步推出,因此并非所有应用都会同时看到这项更改。

v4.5.0(2023 年 5 月 12 日)

  • 将 Navigation SDK 依赖项更新为 v4.5。请注意,Navigation SDK 的组 ID 和制品 ID 已更改。

v4.4.3(2023 年 3 月 20 日)

依赖项变更

  • 将 Navigation SDK 依赖项升级到 v4.4.1。

v4.4.2(2023 年 2 月 15 日)

问题修复

  • 改进了 SDK 在遇到临时连接问题时的网络恢复时间。这是一项实验性修复。

  • 舍弃仅包含“原始”位置信息的 UpdateVehicle 请求。

  • 修复了“路线概览”ALPHA 版 API 中的竞态条件。

v4.4.1(2022 年 11 月 18 日)

问题修复

  • 修复了流量上传逻辑中的 bug。

其他更改

  • 对请求标头和状态代码报告进行了内部改进。

v4.4.0(2022 年 9 月 21 日)

问题修复

  • 修复了以下 bug:如果未清除 API 实例,则无法移除“使用 Google 地图驾驶”通知。

依赖项变更

  • 将 Navigation SDK 依赖项升级到 v4.2.2。

v4.3.0(2022 年 8 月 24 日)

内部改进。

公告:冻结对 Android 5 的支持(2022 年 7 月 21 日)

对于最新的 SDK 版本 (v4.2.0),我们将为在 Android 5 上运行的应用(API 级别 21 和 22)额外提供一年的支持。

这意味着:

  • 在 2023 年 6 月 30 日之前,在 Android 应用上运行的 Navigation SDK 和 Driver SDK 将支持最低 Android 5(API 级别 21)。
  • 2023 年 6 月 30 日之后,我们将仅支持 Android API 级别 23 及更高级别。 换句话说,在此日期之后,我们将停止在所有 SDK 版本中支持 Android API 级别 21 和 22。这意味着,任何 SDK 版本(包括 4.x)中与 Android 21 或 22 相关的 bug 都不会得到修复,并且我们不保证 SDK 会正常运行。

本通知取代了 2021 年 6 月 21 日发布的有关冻结 Android 21 和 22 支持的通知,以及 2021 年 10 月 18 日发布的有关冻结 Android 23、24 和 25 支持的通知。

v4.2.0(2022 年 6 月 8 日)

依赖项变更

  • 将 Nav SDK 依赖项升级到 v4.1.3。
  • 将支持的最低 Android API 级别降至 21。

v4.1.0(2022 年 4 月 28 日)

API 更新

  • 将 Task 对象的 parentId 属性重命名为 trackingId。旧属性目前仍然存在,但已被弃用。

v4.0.0(2021 年 11 月 29 日)

此版本支持的最低 Android API 级别为 23。

API 更新

对于此版本,Driver SDK for Android 已更新,并进行了以下更改。

VehicleStops API 变更

VehicleStop 对象现在引用 TaskInfo 对象列表,而不是 Task 对象列表。如果您需要任务状态,建议在应用代码中跟踪该状态。

崩溃监控

添加了崩溃监控和报告功能,以帮助提高 SDK 稳定性。 此功能默认处于启用状态,但您可以在初始化 SDK 之前调用 setAbnormalTerminationReportingEnabled() 并向其传递值 false,以停用此功能。

异步 getRemainingVehicleStops

身份验证

从 AuthTokenContext 接口中移除了不必要的属性。 ServiceType 已弃用。现在,您只需获取所含车辆 ID 和任务 ID 的声明,而无需依赖 ServiceType。

2021 年 10 月 18 日 - 冻结对 API 级别 23、24 和 25 的支持

阅读 10 月 18 日的公告

由于内部依赖项发生变化,从 2022 年第三季度开始,新版 Navigation SDK 和 Driver SDK for Android 将不再支持 Android API 级别 23、24 和 25(Android 6、7.0 和 7.1)。

自 2022 年第三季度起发布的 Navigation SDK for Android 和 Driver SDK for Android 版本将仅支持运行 Android API 级别 26 或更高级别的设备。

使用适用于 Android 的 Navigation SDK 和 Driver SDK 的 v4.x 或更低版本构建的应用版本将继续在搭载 Android API 级别 25 及更低版本的设备上运行。

v3.0.4(2021 年 7 月 28 日)

功能

在此版本中,Driver SDK 正式与 Navigation SDK 分开。如需了解详情,请参阅迁移指南。

API 更新

添加了以下方法:

`RidesharingDriverApi.getDriverSdkVersion()`

稳定性和 bug 修复

报告 PERMISSION_DENIED 错误,而不是将其归类为连接错误。

弃用公告(2021 年 6 月 21 日)

本公告介绍了自上述日期起对 Android 版 Driver SDK 和 Android 版 Navigation SDK 的弃用情况。此公告还以强制性服务通告 (MSA) 的形式发送给了受影响的客户。

为了简化客户集成并加快我们交付实用功能的速度,我们将 Navigation SDK for Android 和 Driver SDK for Android 拆分为两个不同的二进制文件:

  • Navigation SDK for Android,可为司机提供导航/路线规划功能。
  • Android 版 Driver SDK,可让您利用 Fleet Engine 有状态网络服务来获取行程或任务进度和分配情况。

请注意,Driver SDK for Android 必须依赖于 Navigation SDK for Android 才能实现核心路线规划功能。

具体变化

v3 中的主要变更如下:

  • 两个二进制文件,而不是一个。
  • 为 Driver SDK for Android 类提供更清晰的软件包定义。
  • Navigation SDK for Android 将 Maps SDK for Android 作为软件包的一部分包含在内(自 Navigation SDK for Android v2 起)。
    • 这样一来,地图和导航功能便可共存于同一地图上(例如在 NavigationView 上绘制多段线),并且由于只使用一张地图,因此可减少内存用量。
    • Navigation SDK for Android 3.0 缺少 Navigation SDK for Android 的完整功能,但 v3.2 将解决此处的大多数问题。如需了解详情,请参阅我能做什么以及何时可以做?
  • 日志记录,以便我们更轻松地调试您可能遇到的问题。

以下方法也在 v3 中被移除,这些方法之前已被标记为已弃用,并且已有替代解决方案:

  • 以下 Nav/Driver SDK 方法已在 2020 年 8 月 10 日发布的 v1.16 中弃用,并在 v3.0 中移除:
    • Waypoint#fromLatLng(*)
    • Waypoint#fromPlaceId(*)
    • Navigator#startGuidance(resumeIntent)
    • NavigationApi#initForegroundServiceManager(*)
  • 为确保完整性和清晰度,请注意,在从 v1 过渡到 v2 的过程中,我们移除了许多方法。其中大多数都是对 Navigation SDK for Android 和 Maps SDK for Android 之间的重复类进行的整合。请参阅迁移指南,以便更好地了解这些变更。

Driver SDK for Android 和 Navigation SDK for Android v1.x 弃用

Nav/Driver SDK v1 于 2018 年发布,随着 v3 版本即将发布,现在是时候弃用 v1 了,以避免支持许多主要版本而导致不可持续。

由于无需支持此额外版本,我们节省了时间,从而能够更好地支持最新的主要版本,并构建更多对客户重要的功能。

因此,Nav/Driver SDK v1.x 现已弃用,并且在 2022 年 6 月 21 日之后将不再维护。

请花点时间了解 SDK 版本中的弃用功能如何运作。

阅读撤销公告

即将推出的 Android 版 Navigation SDK 和 Android 版 Driver SDK v4.0 将支持最低 [Android 6.0(API 级别 23)](https://developer.android.com/studio/releases/platforms#6.0){: .external}。当前支持的最低版本为 Android 5.0(API 级别 21)。我们预计将在 2021 年第 4 季度发布 v4.0。这意味着:

  • 使用 v4.x 之前的版本构建的应用版本将继续在 Android 21 和 22 设备上运行。集成了我们当前 SDK 的司机应用将继续在搭载 Android 21 及更高版本的设备上运行。这与之前相同。
  • 使用 Driver SDK for Android 和 Navigation SDK for Android v4.x(预计于 2021 年第 4 季度发布,可能会有变动)及更高版本构建的应用版本将无法安装在搭载 Android 21 和 22 的设备上。v4.x 将在最低 Android 6.0(API 级别 23)上运行,因此使用即将推出的 v4.x 构建的应用版本只能由搭载 Android 23 及更高版本的设备的司机接收。再次强调,这意味着我们的 SDK 相关更改以及您所做的任何应用更改都无法触达搭载 Android 21 和 22 的设备的司机。

下表介绍了您需要升级到的 Navigation SDK for Android v3 和 Driver SDK for Android v3 的版本,以及这些版本何时可用。

您使用的是哪些 Driver Platform 功能? 您是否使用这些功能? 那么,您应该升级到的第一个可用版本是… 预计上线时间
(可能会发生变化)
迁移链接
仅限导航
(NavSDK 方法)
否 NavSDK v3.0.1 现在 指南
是 NavSDK v3.5(预计) 2021 年 9 月
导航和 Fleet Engine 跟踪(NavSDK 和 DriverSDK 方法) 否 导航 SDK v3.0 和 Driver SDK v3.0 发布时提供驱动程序 v3.0 迁移指南
是 NavSDK v3.x 和 DriverSDK v3.0

如需继续使用已移除的方法,您可以继续使用 v1.x,但请注意,在 2022 年 6 月 21 日之后,我们将不再提供支持或维护服务(请参阅下一部分)。

我们建议您迁移到 v3.x。这意味着:

* v1.x 的最后一个版本将于 2021 年第 4 季度发布(因此 v1 从那时起“功能冻结”)。

* 此最终版本在发布后的 6 个月内(即 2022 年 6 月 21 日之前)可以进行修补。 在此之后,我们将无法再针对 v1.x 的 bug 或功能请求做出响应。

请花点时间查看下表和 [迁移指南](/maps/documentation/navigation-sdk-android/v2/migration),以便您应对这些变化。

我可以在什么时间之前做什么?

如果您目前使用的是… 您是否使用这些功能? 立即升级 将于 2021 年 9 月升级 迁移链接
v1.x
(不使用 FleetEngine.java / Driver 功能)
否 NavSDK v3.0 指南
是 无选项 NavSDK 3.x
v1.x
(使用 FleetEngine.java / 司机功能)
否 无选项 NavSDK 3.x +
DriverSDK 3.x
上述指南,以及发布时提供的驱动程序 v3.0 迁移指南。
是

我们建议您通知使用搭载 Android 21 和 22 的设备的司机升级到更高版本的 Android(最低 Android 6.0),然后再将 Driver SDK for Android 和 Navigation SDK for Android v4.x 及更高版本集成到司机应用中。

v1.15.3(2020 年 10 月 9 日)

API 更新

  • Driver SDK 现在会订阅 Navigation SDK,以获取发送到 Fleet Engine API 的路况更新。

稳定性和 bug 修复

  • 修复了 gRPC 运行时崩溃问题。

v1.15.2

功能

添加了停止常驻通知的功能。如果 Fleet Engine 实例中停止了位置报告,则 Navigator 中的导航指引会停止,所有导航监听器都会取消注册,并且 NavigationFragment 或 NavigationView 会暂停。

稳定性和 bug 修复

  • 修复了在清除 Fleet Engine 实例时导致抛出异常的 bug。

v1.15.1(2020 年 5 月 12 日)

功能

对 1.15.0 数据的初步分析表明,稳定的位置报告功能有了显著改进(减少了“卡住”的位置)。此补丁修复可让改进后的位置信息报告功能继续运行。ANR 问题与这些改进无关。

稳定性和 bug 修复

  • 修复了有时会导致在消费者应用中显示路线开头直线的问题。
  • 修复了 SDK 报告位置信息时可能导致 ANR 的 bug。这是因为 onArrival() 改进容易受到锁争用的影响。在某些情况下,我们能够可靠地重现 ANR,并能够验证修复程序是否解决了问题。修改后的用于生成 ANR 的测试应用在修复后运行了 8 小时,没有出现 ANR。

v1.15.0(2019 年 3 月 23 日)

功能

  • 在开始、偏离路线、到达事件中引入了导航引导状态,以改进车辆位置跟踪。
  • 添加了以下功能:无论导航状态如何,都可以继续获取贴合道路的位置信息。
  • 添加了有关道路吸附前位置的其他信息,例如精确度。

稳定性和 bug 修复

  • 将 navsdk 的 minSdkVersion 提高到 19。
  • 修复了以下问题:当服务器端反向地理编码失败时,系统无法识别纬度/经度航点名称。

v1.14.2 版本(2019 年 2 月 2 日)

功能

  • 防止 DriverSDK 向 Fleet Engine 发送 0,0 位置信息(改进了行程分享和分配位置信息输入)。
  • 添加了更多日志记录,以改进位置信息卡顿问题并减少行程分享的后备方案。
  • 忽略对 setLocationReportingInterval() 的重复调用,除非间隔发生变化。
  • 更新了 setReportingInterval() 方法的 Javadoc,目的是不鼓励以相对于所用间隔的高速率重复调用此方法。
  • 提高了 API 29 位置信息的可靠性。

v1.13.0

稳定性和 bug 修复

  • 添加了对 okhttp 的依赖项,客户端将必须将其添加到其 gradle build 中。

v1.11.7(2019 年 10 月 18 日)

稳定性和 bug 修复

  • 现在,在针对给定目的地触发 onArrival() 后,位置信息更新会继续。
  • 默认通知(自由导航模式下的常量字符串)与为导航通知设置的配色方案一致。如需了解详情,请参阅共享的常驻通知。
  • 解决了以下问题:延迟的位置信息更新事件可能会导致虚假的位置信息更新,从而导致出现伪影,例如路线开头出现直线。

v1.11.6(2019 年 10 月 4 日)

API 更新

  • 引入了一系列变更,以确保 Driver SDK 在网络故障后快速恢复位置信息更新。网络连接恢复后,位置信息更新会在下一次预定的位置信息更新时重新开始。

提升了稳定性并修复了一些问题

  • setVehicleState()现在会立即返回。现在,FleetEngine 的更新在后台线程中进行。解决了应用无响应 (ANR) 问题。
  • 修复了以下问题:使用旧版 Consumer SDK 时,行程分享路线显示为直线。确保 Driver SDK 不会向路线添加一次性航点。