本部分包含 Android 版消费者 SDK 的版本说明。
2.3.0(2024 年 8 月 2 日)
API 变更
添加云端地图 样式设置 通过该功能,您可以为自己的业务、 而无需更新应用的每次制作地图时都使用代码 样式更改。有关详情,请参阅使用云端地图设置地图样式 样式。
向
VehicleLocation
添加getServerTimeMillis()
方法以确定 Fleet Engine 收到位置更新的时间。
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:
ConsumerTrip
、ConsumerTripCallback
、ConsumerTripManager
、ConsumerTripOptions
。他们 已替换为TripModel
、TripModelCallback
、TripModelManager
和TripModelOptions
。使用消费者 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.TripStatus
和Trip.TripType
注解类,添加了 要替换的TripInfo.TripStatus
和TripInfo.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 变更
对
ConsumerTrip
和ConsumerTripManager
类进行了更改。- 清理了一些方法名称,使其含义更清晰, 支持 iOS 平台
对
ConsumerTripCallback
、ConsumerTrip
和TripInfo
的更改。更改了一些类名称,以便与 iOS 等效。上市时间 要弃用的
TripModel
、TirpModelManager
和TripModelOptions
ConsumerTrip
、ConsumerTripManager
和ConsumerTripOptions
。清理了一些方法名称。修改了或添加了 JavaDoc 评论 方法传递更清晰的含义。
改进了错误处理方式。
样式自定义
已弃用的旧版封装容器
- 废弃了
MarkerStyleOptions
和PolylineStyleOptions
, 取而代之的是两者共享的“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 返回值类型(
ImmutableSet
、ImmutableList
)替换为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()
,用于指示 在流量发生变化时触发 - 添加了用于流量自定义的
PolylineStyleOptions
(setTrafficEnabled()
、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_POINT
、SUGGESTED_PICKUP_POINT
、HIGHLIGHTED_PICKUP_POINT
和SELECTED_DROPOFF_POINT
。
OnConsumerMarkerClickCallback
和ConsumerMapReadyCallback
已从 抽象类之间的接口- 添加了
ConsumerController.getCameraUpdate()
,ConsumerController.isAutoCameraEnabled()
和ConsumerController.enableAutoCamera()
。 - 移除了自定义 FAB 及其关联的方法
(
ConsumerController.isMyLocationFabEnabled
和ConsumerController.setMyLocationFabEnabled
)。
实现方面的变更
ConsumerTripCallback
(无论是否使用LifecycleOwner
,不再自动取消注册TripStatus.COMPLETE
或TripStatus.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 日)
新功能
支持 ConsumerMapView.
ODRD 工件现在以 Maven 代码库(而不是 .aar zip 文件)的形式提供。 有关详情,请参阅将使用方 SDK 添加到您的 app。
API 变更
添加了
ConsumerController.disableAutoCamera()
作为centerMapForState()
。VehicleLocation.getUpdateTime()
现在会返回一个 Long,它表示 时间戳(以毫秒为单位)。简化了
AuthTokenFactory
接口,以针对 词元生成。将AuthTokenFactory
从接口更改为了 抽象类来实现 Java7 中的向后兼容性。此次变更 向后兼容,但用于生成单服务令牌的旧方法 已被弃用,最终将被移除。
实现方面的变更
现在,资源居中于图标中心,从而消除了阴影偏移。
无需等待即可获得
setState
到JOURNEY_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_SHARING
”ENROUTE_TO_PICKUP
、ARRIVED_AT_PICKUP
、ENROUTE_TO_DROPOFF
和COMPLETE
。“
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
”。