Consumer SDK for Android 版本说明

本部分包含 Android 版消费者 SDK 的版本说明。

2.3.0(2024 年 8 月 2 日)

API 变更

2.2.0(2024 年 5 月 7 日)

API 变更

  • 添加了对 Jetpack Compose 集成的支持 API。这是一项实验性功能 功能。如需详细了解如何与 Jetpack Compose 集成,请联系 您的代表。

2.1.0(2024 年 1 月 17 日)

bug 修复

  • 修复了 SDK 在 应用生命周期

API 变更

  • 引入了检索由 SDK 创建的 GoogleMap 实例的方法 (ConsumerGoogleMap.getGoogleMap()).
  • 引入了 API 来检索由 SDK 创建的 Marker 实例, 代表车辆 (ConsumerController.getConsumerMarker())。
  • 引入 API,以接收客户端投影的时间和距离更新 (ProjectedRouteEta)期间。

1.99.2(2023 年 11 月 3 日)

  • 修复了从远程进程初始化 SDK 时发生崩溃的问题, 与应用分离

  • 修复了执行相机动画且没有相机动画时发生的崩溃问题 留有足够的垂直或水平空间作为内边距。这仅适用于 最新版地图渲染程序。

  • 修复了导致背靠背行程的第一段被剪掉的 bug 当第二段路程经过相同路段时触发。

问题

  • 在某个 API 被调用时,ConsumerApi.initialize() 会抛出异常 实例已存在。要解决此问题,请先调用 ConsumerApi.getInstance() 并评估返回的 Task,以确定 API 实例已存在。

2.0.0(2023 年 9 月 15 日)

通知:重大变更

  • 最低 API 级别要求已从 21 更新为 23。

  • 将 Maps SDK 版本要求从 v17.0.0 更新为 v18.1.0

  • Kotlin 标准库的最低版本要求已从 v1.6.10 更新 到 v1.9.0

  • 更新 Google Play 服务依赖项版本

    • 最低 play-services-base 库版本要求从 v18.0.1 到 v18.2.0

    • 更新了 play-services-basement 库的最低版本要求 从 v18.0.0 到 v18.2.0

    • 更新了 play-services-location 库的最低版本要求 从 v17.0.0 到 v21.0.1

    • 最低 play-services-tasks 库版本要求从 v18.0.1 到 v18.0.2

  • 添加了 androidx.room:room-runtime 库,并设置了最低版本要求 到 v2.5.2

  • 更新以下依赖项版本

    • 最低 android-maps-utils 库版本要求从 v0.4.2 到 v3.5.2

    • com.google.android.datatransport:transport-backend-cct 最低版本 要求已从 v3.0.0 更新为 v3.1.9

    • com.google.android.datatransport:transport-runtime 最低版本 要求已从 v3.0.1 更新为 v3.1.9

    • 最低 androidx.lifecycle:lifecycle-extensions 版本要求为 已从 v2.0.0 更新为 v2.2.0

    • 最低 androidx.Lifecycle:lifecycle-common-java8 版本要求为 已从 v2.0.0 更新为 v2.6.1

    • 最低 androidx.appcompat:appcompat 版本要求已从 v1.0.0 到 v1.6.1

    • 最低 androidx.fragment:fragment 版本要求从以下日期更新: v1.0.0 到 v1.6.1

  • 移除了以下先前已废弃的 API:ConsumerTripConsumerTripCallbackConsumerTripManagerConsumerTripOptions。他们 已替换为 TripModelTripModelCallbackTripModelManagerTripModelOptions

  • 使用消费者 SDK 的应用现在必须 targetSdkVersion(API 31 或更高级别)、compileSdkVersion(API 33 或更高)或 。

  • 使用消费者 SDK 的应用现在必须启用 Java 8 库支持。请参阅 https://developer.android.com/studio/write/java8-support 提供了 更新。

  • 使用 Proguard 或 Dexguard 的应用必须迁移到 R8。请参阅 如需了解详情,请访问 https://developer.android.com/build/ProGuard-code。

  • 使用消费者 SDK 的应用必须启用脱糖。 请参阅 https://developer.android.com/studio/write/java8-support#library-desugaring 了解相关说明。

  • 现在,如果正在发生以下情况,ConsumerApi.initialize() 方法会抛出异常: 在创建 API 实例时调用。Task 回归 由 ConsumerApi.getInstance() 用于确定是否存在 实例

通知:API 弃用

  • 废弃了 Trip.TripStatusTrip.TripType 注解类,添加了 要替换的 TripInfo.TripStatusTripInfo.TripType 注解类 。

    • 受此变化影响 TripModelCallback#onTripStatusUpdated(TripInfo tripInfo, @Trip.TripStatus int status) 已弃用, 添加了 TripModelCallback#onTripStatusUpdate(TripInfo tripInfo, @TripInfo.TripStatus int status) 以替换它。

    • 在进行这项更改后,TripInfo#getTripStatus() 已被弃用, 添加了 TripInfo#getCurrentTripStatus() 以替换它。

    • 在进行这项更改后,TripInfo#getTripType() 已被弃用, 添加了 TripInfo#getCurrentTripType() 以替换它。

  • 废弃了 Trip 类。

其他变更和 bug 修复

  • 支持请求最新版 Maps SDK 渲染程序。请参阅新版地图渲染程序 了解详情。

  • 提供从 v18.1.0(含)到 的 Maps SDK 范围支持 v19.0.0(独占)版本。

  • 修复“已超出截止日期”SDK 和 Google 后端。

  • 修复了小尺寸屏幕和画中画模式下的呈现问题。

迁移指南

1.99.1(2023 年 8 月 31 日)

bug 修复

  • 修复了在 SDK 宿主 activity 或 fragment 被销毁时发生崩溃的问题。

  • 修复了 MapView 的尺寸为 0( 高度或宽度)。

  • 修复了在路线上投影车辆位置时发生崩溃的问题 多段线

改进

  • 防止 SDK 在主应用旁加载时崩溃,以及 默认视觉资源不存在。

1.99.0(2023 年 6 月 22 日)

bug 修复

  • 修复了小尺寸屏幕和画中画模式下的呈现问题。

  • 修复了行程分享期间车辆闪烁的问题。

1.2.1(2023 年 6 月 7 日)

bug 修复

  • 修复了导致车辆在行程分享期间闪烁的 bug。

1.2.0(2022 年 11 月 21 日)

bug 修复

  • 修复了导致在 onTripActiveRouteTrafficUpdated 回调。

新功能

  • "路况感知型多段线"现已推出正式版。

1.1.2(2022 年 10 月 27 日)

bug 修复

  • 解决了导致路线多段线在 针对 TripModel 多次启动了 JourneySharingSession

通知:冻结对 Android 5 的支持(2022 年 7 月 25 日)

对于 v1.1.1 SDK 版本,我们为 在 Android 5 上运行的应用(对于 API 级别 21 和 22)。

这意味着:

  • 您的 Android 应用上运行的消费者 SDK 至少支持 Android 5 (API 级别 21)的截止日期为 2023 年 6 月 30 日。

  • 2023 年 6 月 30 日之后,我们将仅支持 Android API 级别 23 及更高级别。 也就是说,我们将停止支持 Android API 级别 21 和 22, 所有 SDK 版本。这意味着,与 Android 21 相关的 bug 或 22 的任何 SDK 版本(包括 4.x)均不会被修复, 来保证 SDK 正常运行

v1.1.1(2022 年 7 月 25 日)

依赖项更改

  • 将支持的最低 Android API 级别降级到 21。

v1.1.0(2022 年 4 月 28 日)

  • 内部改进。

v1.0.19(2022 年 3 月 17 日)

bug 修复

  • 修复了 ConsumerApi 类中的内存泄漏问题。

v1.0.14(2021 年 11 月 30 日)

现在,支持的最低 Android API 级别为 23。

API 变更

  • ConsumerTripConsumerTripManager 类进行了更改。

    • 清理了一些方法名称,使其含义更清晰, 支持 iOS 平台
  • ConsumerTripCallbackConsumerTripTripInfo 的更改。

    • 更改了一些类名称,以便与 iOS 等效。上市时间 要弃用的 TripModelTirpModelManagerTripModelOptions ConsumerTripConsumerTripManagerConsumerTripOptions

    • 清理了一些方法名称。修改了或添加了 JavaDoc 评论 方法传递更清晰的含义。

    • 改进了错误处理方式。

样式自定义

  • 已弃用的旧版封装容器

    • 废弃了 MarkerStyleOptionsPolylineStyleOptions, 取而代之的是两者共享的“MarkerOptions”和“PolylineOptions” 集成了 Google Maps SDK

崩溃监控

  • 添加了崩溃检测和日志记录。

    • 新增了一项允许您选择停用该功能。这个 这项措施是全网范围更大规模的车祸监控措施之一。

身份验证更改

  • 从 Authentication 界面中移除了不必要的方法。
    • 移除了 ServiceType 参数。

v0.9.28(2021 年 5 月 18 日)

API 变更

  • 更新了所有 ConsumerTripCallback 方法,以将 TripInfo 用作 参数。
  • 添加了 ConsumerTrip.isRefreshing(),用于指示 ConsumerTrip 正在使用来自 Fleet Engine 的最新行程信息进行自我更新。
  • 添加了 ConsumerTripCallback.onTripRemainingRouteDistanceUpdated()
  • 添加了 ConsumerTripCallback.onTripRemainingRouteUpdated()
  • 将 Guava 返回值类型(ImmutableSetImmutableList)替换为 java.util 等效类。
  • 软件包名称变更:

    • com.google.android.libraries.ridesharing.common.AuthTokenContext -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenContext
    • com.google.android.libraries.ridesharing.common.AuthTokenFactory -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenFactory
    • com.google.android.libraries.ridesharing.common.FleetEngineServiceType -> com.google.android.libraries.ridesharing.consumer.auth.FleetEngineServiceType - com.google.android.libraries.ridesharing.common.model.Trip

                                  ->
                                                                  com.google.android.libraries.ridesharing.consumer.model.Trip
      
                                  -   com.google.android.libraries.ridesharing.common.model.Vehicle
      
                                                          ->
                                      com.google.android.libraries.ridesharing.consumer.model.Vehicle
      

实现方面的变更

  • 修复了在与 使用。
  • SDK 不再包含未经混淆处理的 io.grpc 副本。
  • 修复了某些设备上路况多段线闪烁的 bug。路况 现在,细分的结尾将变为圆角。

v0.9.15(2020 年 10 月 7 日)

API 变更

  • 此版本引入了流量感知功能 多段线。 - 添加了TripInfo.getActiveRouteTraffic()TripInfo.getRemainingRouteTraffic()
    • 添加了 ConsumerTripCallback.onTripActiveRouteTrafficUpdated()ConsumerTripCallback.onTripRemainingRouteTrafficUpdated(),用于指示 在流量发生变化时触发
    • 添加了用于流量自定义的 PolylineStyleOptionssetTrafficEnabled()setTrafficColorNoData()setTrafficColorNormal()setTrafficColorSlow()setTrafficColorTrafficJam())。
    • 公开了 PolylineStyleOptions.TRAFFIC_Z_INDEX_ADDITION
    • 添加了 TripWaypoint.getTrafficData()
    • 添加了 TrafficData 数据类型。
    • 添加了 ConsumerController.hideAllSessions()ConsumerController.showSession() 不再接受 null 作为 参数。

v0.9.9(2020 年 7 月 15 日)

API 变更

  • 这是一项重大变更,引入了一个模块化架构,具有 (例如, ConsumerTripManager)和界面层(例如, JourneySharingSession)。有关如何迁移到新版 请参阅模块化迁移 指南。 - ConsumerTrip 对象现在 数据来源 ConsumerTripManager.getTrip()
    • ConsumerTrip.unregisterCallback 已重命名为 ConsumerTrip.unregisterTripCallback
    • ConsumerTrip.isCallbackRegistered 已重命名为 ConsumerTrip.isTripCallbackRegistered
    • 添加了 ConsumerTrip.setConsumerTripOptions()ConsumerTrip.getConsumerTripOptions()
    • 移除了 ConsumerTrip.setAutoRefreshInterval()
  • 移除了非行程共享 API。
    • 移除了车辆密度地图。
    • 已移除行程预览状态。
    • 移除了上车点选择状态。
    • 移除了下车点选择状态。
    • 移除了以下标记类型:SELECTED_PICKUP_POINTSUGGESTED_PICKUP_POINTHIGHLIGHTED_PICKUP_POINTSELECTED_DROPOFF_POINT
  • OnConsumerMarkerClickCallbackConsumerMapReadyCallback 已从 抽象类之间的接口
  • 添加了 ConsumerController.getCameraUpdate()ConsumerController.isAutoCameraEnabled()ConsumerController.enableAutoCamera()
  • 移除了自定义 FAB 及其关联的方法 (ConsumerController.isMyLocationFabEnabledConsumerController.setMyLocationFabEnabled)。

实现方面的变更

  • ConsumerTripCallback(无论是否使用 LifecycleOwner,不再自动取消注册 TripStatus.COMPLETETripStatus.CANCELED
  • AutoCamera 现在默认处于启用状态,永远不会重新启用或自行停用。 以前,系统会自动在 TripStatus.ARRIVED_AT_PICKUP,并在用户互动时自行停用 与地图共享旅程。
  • 对行程共享车辆做出了以下改进 动画:
    • 行程分享动画现在可处理车辆可能 沿着已经遍历的路线合法地返回。
    • 现在,车辆会以直线动画代替路线 通过在算法确定 适当的选择。
  • 不再需要 FINE_LOCATION 权限。

其他变更

  • 更新了以下依赖项版本:
    • com.google.android.datatransport:transport-api:2.2.0
    • com.google.android.datatransport:transport-backend-cct:2.2.0
    • com.google.android.datatransport:transport-runtime:2.2.0

v0.9.1(2020 年 3 月 23 日)

API 变更

  • 添加了 TripInfo.getVehicleId()TripInfo.getNumberOfPassengers()TripInfo.getIntermediateDestinationIndex(), TripInfo.getTripActiveRoute()TripInfo.getTripRemainingRoute()
  • 添加了在 ConsumerApi 初始化期间使用的 options 类,可让 要动态设置的 FleetEngine 地址。如果未使用 FleetEngine 值,它会尝试从 Android 清单或 否则将恢复为默认值。

改进

  • 当行程状态为 ARRIVED_AT_PICKUP
  • 改进了偏离路线的车辆跟踪功能(需要 DriverSDK 1.15):
    • 当车辆抵达路线时,车辆跟踪功能不会将车辆与路线匹配 驶过上车点。
    • 借助车辆跟踪功能,您可以显示车辆正在上路行驶;用于 示例。
  • 现在,当驾驶员的目标页面不匹配时,车辆图标会更新 Fleet Engine 中的目标位置。

v0.8.6(2019 年 12 月 16 日)

API 变更

  • 添加了 TripInfo.getVehicleLocation()

  • ConsumerMapView”不再是最终版本。

实现方面的变更

  • 现在使用服务器距离计算活动路程剩余距离 (驾驶员报告 + 静态路由,如果适用),而不是本地贴靠。 此更改可产生更准确的剩余距离值。

其他变更

  • 需要新的依赖项。如需了解详情,请参阅 .pom 文件。

    • com.google.android.datatransport:transport-api:2.0.0
    • com.google.android.datatransport:transport-backend-cct:2.0.2
    • com.google.android.datatransport:transport-runtime:2.0.0
  • 添加了行程请求延迟时间日志。

  • 添加了行程响应错误日志。

备注

  • 从版本 0.8.1 开始,面向 Android 的消费者 SDK 以 Jetified zip 格式提供 归档。如需了解如何对其进行反 Jetify 处理,请参阅 Jetifier: Reverse 模式

v0.8.1(2019 年 9 月 13 日)

新功能

API 变更

  • 添加了 ConsumerController.disableAutoCamera() 作为 centerMapForState()

  • VehicleLocation.getUpdateTime() 现在会返回一个 Long,它表示 时间戳(以毫秒为单位)。

  • 简化了 AuthTokenFactory 接口,以针对 词元生成。将 AuthTokenFactory 从接口更改为了 抽象类来实现 Java7 中的向后兼容性。此次变更 向后兼容,但用于生成单服务令牌的旧方法 已被弃用,最终将被移除。

实现方面的变更

  • 现在,资源居中于图标中心,从而消除了阴影偏移。

  • 无需等待即可获得 setStateJOURNEY_SHARING onStartTripMonitoring() 了解受监控的行程状态。

  • 始终返回首次行程数据更新的数据,即使行程数据已失效 同步。

  • 添加了 Android 地图实用程序作为提供的依赖项。

bug 修复

  • 修复了 grpc keep 的受损 ProGuard 导出语法。

v0.7.0(2019 年 8 月 7 日)

新功能

  • “旅程分享”功能的多目的地支持。

API 变更

  • 新增了 ConsumerTripCallback 方法。

    • onTripIntermediateDestinationsUpdated()
    • onTripETAToNextTripWaypointUpdated()
  • 新增了 ConsumerController 方法。

    • getIntermediateDestinations()
    • setIntermediateDestinations(List<TerminalLocation> intermediateDestinations)
  • 新建 TripStatuses

    • TripStatus.ENROUTE_TO_INTERMEDIATE_DESTINATION
    • TripStatus.ARRIVED_AT_INTERMEDIATE_DESTINATION
  • 新增了 TripWaypoint getter。

    • getETAMillis()
    • getDistanceMeters()
  • 添加了 TripInfo 类。

    • 您可以使用以下代码获取正在进行的行程的 TripInfo ConsumerTripManager.getActiveTripInfo()
  • 添加了 WaypointType.INTERMEDIATE_DESTINATION

  • 添加了 MarkerType.TRIP_INTERMEDIATE_DESTINATION

  • 已根据合并的“ConsumerMapStates”创建“ConsumerMapState.JOURNEY_SHARINGENROUTE_TO_PICKUPARRIVED_AT_PICKUPENROUTE_TO_DROPOFFCOMPLETE

    • StateChangeCallbacks”已更新。

    • 添加了 onStateJourneySharing()

    • 已移除onStateWaitingForPickup()onStateDriverArrived()onStateEnroute()onStateEndofTrip()

bug 修复

  • 修复了行程时路线未剪辑到车辆位置的 bug 监测在进行中的行程期间(而不是路线起点)开始。

  • 修复了以下 bug:不为上面注册的监听器调用行程回调 在 TripManager 提取行程数据之后将 Tripmanager。

  • 相机缩放现在仅包含有效路线和下一个行程航点 (属于该行程的航点)。即使只剩下一条腿 缩放都不会包含该元素。之前,下车点已包含在内 当车辆正在前往上车点或已抵达上车点时放大显示 上车点。如今,情况不再如此。

改进

  • 使用驾驶员数据填充第 0 个剩余航点(其余航点) 列表是从 ConsumerTripCallback.onTripRemainingWaypointsUpdated 返回的 和TripInfo.getRemainingWaypoints()

  • 当 ETA 更新为第一个航点时,更新所有剩余的航点 ETA 列表更改。

  • 仅当司机到达上车点时,才能强制重新启用自动摄像头。以前, 对于每次行程状态变化,autocamera 将重置为启用。“自动相机”现为 但仍然默认处于启用状态如果有新的有效行程,自动相机不会重新启用 设置时没有对 startTripMonitoring() 进行新的调用。

v0.6.1(2019 年 6 月 26 日)

新功能

  • 拼车支持行程分享。

API 变更

  • ConsumerController.getConsumerMapStyle() 现在会返回 ConsumerMapStyle 而非 Task<ConsumerMapStyle>

  • 添加了 PolylineStyle.setZIndex()

bug 修复

  • 现在,仅当路线路段同步时,才会触发路线动画 从而改善用户体验

  • 修复了车辆“闪烁”问题在动画插值期间 位置更新相距不远。

  • 修复了以下 bug:车辆从路线起点,而不是在 当行程监控在 进行中的行程。

  • 显示有效路线多段线时,在剩余路线上方 重叠。

改进

  • 现在,使用未混淆的方法公开 gRPC Status 类。

v0.5.1.01(2019 年 5 月 17 日)

新功能

  • 为“旅程分享”提供背靠支持。

API 变更

  • 新增了 ConsumerController 类。

PolylineType

旧值 新值
TRIP_PREVIEW_AUTO_ROUTE PREVIEW_AUTO_ROUTE
TRIP_PREVIEW_TAXI_ROUTE PREVIEW_TAXI_ROUTE
TRIP_PREVIEW_TRUCK_ROUTE PREVIEW_TRUCK_ROUTE
TRIP_PREVIEW_TWO_WHEELER_ROUTE PREVIEW_TWO_WHEELER_ROUTE
TRIP_ROUTE ACTIVE_ROUTE
REMAINING_ROUTE

ConsumerTripCallback

旧值 新值
onTripRouteUpdated onTripActiveRouteUpdated
onTripRemainingDistanceUpdated onTripActiveRouteRemainingDistanceUpdated
onTripRemainingWaypointsUpdated()

ConsumerController

  • 现在,您无需进入状态即可为状态设置回调。
方法 回拨电话
startPickupSelection setPickupSelectionCallback
startDropoffSelection setDropoffSelectionCallback
startTripPreview setTripPreviewSelectionCallback
  • ConsumerController.setLanguage(String languageCode) 可用于设置 FleetEngine 通话中使用的语言(用于 示例)。

改进

  • 下车点选择状态现在有一个可拖动图钉。
  • 移除了 INITIALIZE 状态下的相机动画。
  • 已将“ManagedChannelBuilder”替换为“AndroidChannelBuilder”。