驱动程序 SDK for Android 版本说明

本部分包含 Android 版驱动程序 SDK 的版本说明。

v5.0.0(2023 年 9 月 12 日)

依赖项和配置更改

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

bug 修复

  • 修复了与 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 日)

bug 修复

  • 缩短了 SDK 遇到临时连接问题时的网络恢复时间。此功能目前处于实验阶段。

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

  • 修复了“Route Overview”ALPHA API 中的竞态条件问题。

v4.4.1(2022 年 11 月 18 日)

bug 修复

  • 修复了流量上传逻辑中的 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 和驱动程序 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 和 Android 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 版驱动程序 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 和适用于 Android 的驱动程序 SDK 将不再支持 Android API 级别 23、24 和 25(Android 6、7.0 和 7.1)。

2022 年第三季度开始发布的适用于 Android 版本的 Navigation SDK 和驱动程序 SDK 将仅支持搭载 Android API 级别 26 或更高级别的设备。

使用 Android 版导航和驱动程序 SDK v4.x 或更低版本构建的应用版本将继续在搭载 Android API 级别 25 及更低版本的设备上使用。

v3.0.4(2021 年 7 月 28 日)

特性

在此版本中,驱动程序 SDK 与 Navigation SDK 已正式分离。如需了解详情,请参阅迁移指南

API 更新

添加了以下方法:

RidesharingDriverApi.getDriverSdkVersion()

稳定性和问题修复

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

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

本公告介绍了自上述日期起弃用 Android 版驱动程序 SDK 和 Android 版 Navigation SDK 的功能。我们还以重要服务通告 (MSA) 的形式向受影响的客户发送了此通知。

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

  • Navigation SDK for Android,为您的驱动程序提供导航/路由功能。
  • 驱动程序 SDK for Android,可让您利用 Fleet Engine 有状态 Web 服务进行行程或任务进度和分配。

请注意,Android 驱动程序 SDK 必须依赖于 Navigation SDK for Android 才能实现核心路由功能。

有哪些变化?

v3 中的主要变更包括:

  • 两个二进制文件,而不是一个。
  • 为 Android 版驱动程序 SDK 类提供更清晰的软件包定义。
  • 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 方法已在 v1.16 中废弃(于 2020 年 8 月 10 日发布),并在 v3.0 中移除:
    • Waypoint#fromLatLng(*)
    • Waypoint#fromPlaceId(*)
    • Navigator#startGuidance(resumeIntent)
    • NavigationApi#initForegroundServiceManager(*)
  • 为完整和明确起见,请注意,在 v1 到 v2 的过渡中,我们移除了许多方法。其中大部分功能都是整合了 Navigation SDK for Android 和 Maps SDK for Android 之间的重复类。请参阅迁移指南以更好地了解这些变更。

废弃了适用于 Android 的驱动程序 SDK 和适用于 Android 的 Navigation SDK v1.x

Nav/Driver SDK v1 是在 2018 年发布的,v3 版本很快就会发布,因此是时候弃用 v1,以免无法持续支持许多主要版本。

我们不必支持这个额外的版本,从而节省了时间,让我们能够更好地支持最新的主要版本,并构建更多对客户重要的功能。

因此,Nav/Driver SDK v1.x 现已废弃,2022 年 6 月 21 日之后将不再进行维护。

请花点时间了解 SDK 版本弃用机制

阅读已撤消的通知

即将推出的 4.0 版 Navigation SDK for Android 和适用于 Android 的驱动程序 SDK 将至少支持 [Android 6.0(API 级别 23)](https://developer.android.com/studio/releases/platforms#6.0){: .external}。 目前支持的最低版本是 Android 5.0(API 级别 21)。我们预计在 2021 年第 4 季度发布 4.0 版。这意味着:

  • 使用 v4.x 之前的版本构建的应用版本仍可在 Android 21 和 22 设备上使用。集成了我们当前 SDK 的驱动程序应用将继续在搭载 Android 21 及更高版本的设备上运行。这与以前一样。
  • 使用 Android 版驱动程序 SDK 和 Navigation SDK for Android v4.x(针对 2021 年第 4 季度,可能会发生变化)及之后使用 Android 2 构建的应用版本无法安装在搭载 Android 21 和 22 的设备上。v4.x 将在搭载 Android 6.0(API 级别 23)或更高版本的设备上运行,因此使用未来版本 4 及更高版本的驱动程序构建的应用版本将同时实现。

下表说明了您要升级到 Android v3 的 Navigation SDK 版本和适用于 Android v3 的驱动程序 SDK 版本,以及这些版本何时推出。

您使用哪些驱动程序平台功能? 您是否使用这些功能 那么,您应该升级到的首个可用版本是... 预计收到款项的时间
(可能会发生变化)
迁移链接
仅限导航
(NavSDK 方法)
不支持 NavSDK v3.0.1 现在 指南
NavSDK v3.5(预计) 2021 年 9 月
导航和舰队引擎跟踪(NavSDK 和 DriverSDK 方法) 不支持 Nav SDK v3.0 和驱动程序 SDK v3.0 驱动程序 v3.0 迁移指南已发布
NavSDK v3.x 和 DriverSDK v3.0

如需继续使用已移除的方法,您可以继续使用 v1.x,但在 2022 年 6 月 21 日之后不需要获得支持或维护(请参阅下一部分)。

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

* v1.x 的最后一次版本将于 2021 年第 4 季度发布(自此之后,v1 便处于“功能冻结”状态)。

* 最后一个版本可在此后 6 个月内进行修补,直至 2022 年 6 月 21 日。 在此之后,我们将无法回复 v1.x 的错误或功能请求。

请花点时间查看下表和 [迁移指南](/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
上述指南,以及发布时提供的驱动程序 v3.0 迁移指南。

我们建议您先通知驱动程序搭载 Android 21 和 22 的设备升级到较新的 Android 版本(最低 Android 6.0),然后再将 Android 版驱动程序 SDK 和 Android 版 Navigation SDK v4.x 及更高版本集成到驱动程序应用中。

v1.15.3(2020 年 10 月 9 日)

API 更新

  • 驱动程序 SDK 现在会订阅 Navigation SDK,以获取将发送到 Fleet Engine API 的路况更新信息。

稳定性和问题修复

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

v1.15.2

特性

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

稳定性和问题修复

  • 修复了在清除 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 日)

特性

  • 针对开始、偏离路线、到达事件引入了导航指导状态,以改进车辆位置跟踪。
  • 添加了独立于导航状态继续获取道路被覆盖位置的功能。
  • 添加了与道路前贴靠位置有关的更多信息,例如准确度。

稳定性和问题修复

  • 将 navsdk 的 minSdkVersion 提高到了 19。
  • 修复了导致服务器端反向地理编码失败时不遵循纬度/经度航点名称的 bug。

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

特性

  • 阻止 DriverSDK 向 Fleet Engine 发送 0,0 个位置信息(更好地共享和分配位置信息输入)。
  • 添加了额外的日志记录,用于改善卡住位置问题,并减少行程共享的回退。
  • 除非间隔时间发生变化,否则忽略对 setLocationReportingInterval() 的重复调用。
  • 更新了 setReportingInterval() 方法的 javadocs,旨在阻止以高速率(相对于所使用的时间间隔)重复调用此方法。
  • 提高了 API 29 的位置可靠性。

v1.13.0

稳定性和问题修复

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

v1.11.7(2019 年 10 月 18 日)

稳定性和问题修复

  • 现在,针对给定目的地触发 onArrival() 后,位置信息更新继续。
  • 默认通知(自由导航模式下的常量字符串)与为导航通知设置的配色方案一致。如需了解详情,请参阅共享的持久性通知
  • 解决了延迟位置信息更新事件可能导致错误的位置信息更新,进而导致路线起点处出现直线等伪影的问题。

v1.11.6(2019 年 10 月 4 日)

API 更新

  • 引入了一系列更改,确保驱动程序 SDK 在发生网络故障后快速恢复位置信息更新。网络连接恢复后,位置信息更新将在下一次计划的位置信息更新时再次启动。

稳定性和问题修复

  • setVehicleState() 现在会立即返回。FleetEngine 现在的更新在后台线程上进行。解决了应用无响应 (ANR) 问题。
  • 修复了导致使用旧版消费者 SDK 的行程共享路线显示为直线的问题。确保驱动程序 SDK 不会向路线添加一次性航点。