驱动程序 SDK for Android 版本说明

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

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

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

自 2025 年第 4 季度起发布的 Android 版 Driver SDK 版本将至少支持 Android 8(API 级别 26)。较低版本的 SDK 将继续支持 Android 6 和 7。

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

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

v6.0.0(2024 年 11 月 25 日)

问题修复

  • 修复了以下问题:驱动程序会收到代码为“INTERNAL”且包含“Panic! This is a 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”且包含“Panic! This is a 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 的应用必须启用脱糖功能。如需了解相关说明,请参阅 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(不包括 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 年第三季度起,新版 Android 导航 SDK 和 Android 驾驶员 SDK 将不再支持 Android API 级别 23、24 和 25(Android 6、7.0 和 7.1)。

2022 年第三季度开始发布的 Android 版本的导航和驾驶 SDK 仅支持搭载 Android API 级别 26 或更高级别的设备。

使用 Android 版 Navigation 和 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,可为您的司机提供导航/路线功能。
  • Driver SDK for Android,可让您利用 Fleet Engine 有状态 Web 服务来跟踪行程或任务进度并进行分配。

请注意,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 v4.0 和 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 及更高版本的设备上运行,这与之前一样。
  • 使用 Android 版 Driver SDK 和 Android 版 Navigation SDK v4.x(预计于 2021 年第 4 季度发布,可能会发生变化)及更高版本构建的应用版本将无法安装在搭载 Android 21 和 22 的设备上。v4.x 的最低运行平台为 Android 6.0(API 级别 23),因此只有搭载 Android 23 及更高版本的设备才能接收使用即将发布的 v4.x 构建的应用版本。再次强调一下,这意味着,我们的 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 月
导航和车队引擎跟踪(NavSDK 和 DriverSDK 方法) Nav 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 / Driver 功能)
无选项 NavSDK 3.x +
DriverSDK 3.x
上述指南,以及发布时提供的 Driver 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

功能

添加了停止常驻通知的功能。如果在车队引擎实例中停止位置信息报告,Navigator 中的导航会停止,所有导航监听器都会取消注册,并且 NavigationFragmentNavigationView 会暂停。

稳定性和 bug 修复

  • 修复了以下 bug:如果清除车队引擎实例,就会抛出异常。

v1.15.1(2020 年 5 月 12 日)

功能

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

稳定性和 bug 修复

  • 修复了有时会导致在导航路线开头显示一条直线的 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 不会向路线添加一次性路径点。