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。

  • 更新了导航 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 日)

问题修复

  • 修复了以下问题:驱动程序收到代码为“INTERNAL”的 gRPC 错误,并显示“Panic!安装后首次启动应用时显示“这是一个 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!“这是一个 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 的应用现在必须具有 API 31 或更高级别的 targetSdkVersion。
  • 使用 Driver SDK 的应用现在必须启用 Java 8 库支持。如需了解更新说明,请参阅 https://developer.android.com/studio/write/java8-support。
  • 使用 Proguard 或 Dexguard 的应用必须迁移到 R8。如需了解详情,请参阅 https://developer.android.com/build/shrink-code。
  • 使用 Driver SDK 的应用必须启用 desugaring。如需了解相关说明,请参阅 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 更新

在此版本中,Android 版 Driver SDK 已更新,包含以下变更。

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 年第三季度起发布的 Android 版 Navigation 和 Driver SDK 将仅支持运行最低 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 日)

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

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

  • Navigation SDK for Android,可为您的司机提供导航/路线规划功能。
  • Driver SDK for Android,可让您利用 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 之间重复类的合并。如需更好地了解这些变更,请参阅迁移指南。

弃用适用于 Android 的 Driver SDK 和适用于 Android 的 Navigation SDK 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 平台功能? 您是否使用这些功能? 那么,您应该升级到的第一个可用版本是… 预计上线时间
(可能会发生变化)
迁移链接
仅限导航
(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 / 驱动程序功能)
否 NavSDK v3.0 指南
是 无选项 NavSDK 3.x
v1.x
(使用 FleetEngine.java / 司机功能)
否 无选项 NavSDK 3.x +
DriverSDK 3.x
上述指南,以及发布时提供的 Driver v3.0 迁移指南。
是

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

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。
  • 修复了以下 bug:当服务器端逆向地理编码失败时,系统不会采用纬度/经度航点名称。

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 在网络故障后快速恢复位置更新。网络连接恢复后,系统会在下一次预定的位置信息更新时重新开始更新位置信息。

稳定性和 bug 修复

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