本部分包含 Driver SDK for Android 的版本说明。
v5.0.0(2023 年 9 月 12 日)
依赖项和配置变更
- 将 Navigation SDK 更新到了 v5.x。
- 将
minSdkVersion
升级到了 API 23。 - 将 Kotlin 版本升级到了 1.9.0。
- 为 Room 添加了依赖项。
- 使用驱动程序 SDK 的应用现在的
targetSdkVersion
必须为 API 31 或更高级别。 - 现在,使用驱动程序 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 修复
- 修复了流量上传逻辑中的一个错误。
其他更改
- 内部改进了请求标头和状态代码报告。
v4.4.0(2022 年 9 月 21 日)
bug 修复
- 修复了在 API 实例未清除时无法移除“使用 Google 地图驾车”通知的 bug。
依赖项变更
- 将 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 和 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
。旧属性目前仍然存在,但已废弃。将某些返回值类型从
Future
更改为了更具体的ListenableFuture
,并从List
更改为了更具体的ImmutableList
。
v4.0.0(2021 年 11 月 29 日)
此版本支持的最低 Android API 级别为 23。
API 更新
在此版本中,Android 版驱动程序 SDK 进行了更新,并进行了以下更改。
VehicleStops API 更改
VehicleStop
对象现在引用 TaskInfo
对象列表,而不是 Task
对象的列表。如果您需要任务状态,建议您在应用代码中跟踪该状态。
添加了一个新类:
TaskInfo
将
VehicleStop
的getTasks
函数替换为getTaskInfoList
函数。将
VehicleStop.Builder
的setTasks
函数替换为setTaskInfoList
函数。
崩溃监控
新增了崩溃监控和报告功能,以帮助提高 SDK 的稳定性。此功能默认处于启用状态,不过,如果您在初始化 SDK 之前调用 setAbnormalTerminationReportingEnabled()
并向其传递值 false
,则可以将其停用。
- 向
DriverApi
添加了setAbnormalTerminationReportingEnabled
函数。
异步 getRemainingVehicleStops
- 更改了
DeliveryVehicleReporter
的getRemainingVehicleStops
函数,以返回 Future<List<VehicleStop>>,而不是 List<VehicleStop>。
身份验证
从 AuthTokenContext
接口中移除了不必要的属性。废弃了 ServiceType
。您现在只需要获取包含的车辆 ID 和任务 ID 的声明,而不是依赖于 ServiceType
。
从
AuthTokenContext
中移除了ServiceType
。从
AuthTokenContext
中移除了getServiceType()
。从
AuthTokenContext.Builder
中移除了setServiceType
。
2021 年 10 月 18 日 - 冻结对 API 级别 23、24 和 25 的支持
阅读 10 月 18 日的公告
为了应对内部依赖项的变化,从 2022 年第三季度开始,新版 Navigation SDK for Android 和驱动程序 SDK 将不再支持 Android API 级别 23、24 和 25(Android 6、7.0 和 7.1)。
从 2022 年第三季度开始发布的 Android 导航和驱动程序 SDK 将仅支持搭载 Android API 级别 26 或以上版本的设备。
使用 v4.x 或更低版本的 Android 导航和驱动程序 SDK 构建的应用版本可继续在搭载 Android API 级别 25 及更低版本的设备上运行。
v3.0.4(2021 年 7 月 28 日)
特性
在此版本中,驱动程序 SDK 已正式与 Navigation SDK 分离。如需了解详情,请参阅迁移指南。
API 更新
添加了以下方法:
DeliveryDriverApi.getDriverSdkVersion()
稳定性和问题修复
报告 PERMISSION_DENIED
错误,而不是将其分类为连接错误。
弃用公告(2021 年 6 月 21 日)
本公告介绍了自上述日期起弃用 Driver SDK for Android 和 Navigation SDK for Android。我们还作为重要服务通告 (MSA) 向受影响的客户发送了。
Nav/Driver SDK for Android 将成为 Navigation SDK for Android v3.x 和 Driver SDK for Android v3.x(拆分二进制文件)
为了简化客户集成并加快我们提供实用功能的能力,我们将 Navigation SDK for Android 和 Driver SDK for Android 拆分为两个不同的二进制文件:
- Navigation SDK for Android,可为您的驾驶员提供导航/路线规划功能。
- 适用于 Android 的驱动程序 SDK:可让您利用 Fleet Engine 有状态 Web 服务来处理行程或任务进度和分配。
请注意,Driver SDK for Android 必须依赖于 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 中移除,这些方法之前被标记为已废弃,并且已有替代解决方案:
- 以下导航/驱动程序 SDK 方法在 2020 年 8 月 10 日发布的 1.16 版中已废弃,并在 3.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 版本弃用的运作方式。
导航和驱动程序 SDK Android 21 和 22 停止支持
阅读已撤消的通知
即将推出的 Navigation SDK for Android 和 Driver SDK for Android 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 的驱动程序 SDK 和适用于 Android 的 Navigation SDK v4.x 构建的应用版本(适用于 2021 年第 4 季度,可能会发生变化),之后将无法安装在搭载 Android 21 和 22 的设备上。v4.x 将在搭载 Android 6.0(API 级别 23)的最低版本上运行,因此使用 Android 版本 2 及以上版本 2 及以上版本的设备所构建的应用的所有版本都可以在 Android 版本 2 及以上版本中得到相关变更。
下表介绍了 Navigation SDK for Android v3 和 Driver SDK for Android v3 这两个版本,以及您何时可以升级到这些版本。
您使用哪些驱动程序平台功能? | 您是否使用这些功能? | 那么,您应升级到的第一个可用版本是... | 预计上架情况 (可能会有所变化) |
迁移链接 |
---|---|---|---|---|
仅导航 (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 将“功能冻结”)。
* 此后,在 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 版 Driver SDK 和 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 的流量更新。
稳定性和问题修复
- 修复了 gRPC 运行时崩溃问题。
v1.15.2
特性
添加了停止常驻通知的功能。如果在 Fleet Engine 实例中停止位置报告,系统会在 Navigator
中停止引导,所有导航监听器都会取消注册,并暂停 NavigationFragment
或 NavigationView
。
稳定性和问题修复
- 修复了导致在清除 Fleet Engine 实例时抛出异常的 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 日)
特性
- 引入了出发、偏离路线、到达事件时的导航指导状态,以改进车辆位置跟踪。
- 添加了独立于导航状态继续获取道路贴靠位置的功能。
- 添加了有关道路预贴靠位置的更多信息,例如精确度。
稳定性和问题修复
- 将 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) 问题。- 修复了导致使用旧版 Consumer SDK 的行程共享路线显示为直线的问题。确保 Driver SDK 不会向路线添加一次性航点。