本節提供 Android 版 Consumer 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 日)
修正錯誤
- 修正在應用程式生命週期內 SDK 初始化超過一次時發生的當機問題。
API 變更
- 引入方法,用於擷取 SDK (
ConsumerGoogleMap.getGoogleMap()
) 建立的GoogleMap
例項。 - 引入 API 以擷取由 SDK 建立的
Marker
例項,用於代表車輛 (ConsumerController.getConsumerMarker()
)。 - 推出 API,接收用戶端預計更新的時間和距離資訊
開啟歷程分享功能 (
ProjectedRouteEta
)。
1.99.2 (2023 年 11 月 3 日)
修正從與應用程式分開的遠端程序初始化 SDK 時發生的當機問題。
修正執行相機動畫時發生的當機問題,且沒有足夠的垂直或水平空間可用於邊框。這只會發生在最新的地圖轉譯器上。
修正當第二段行程經過相同道路時,會導致回程行程的第一段行程遭到裁剪的錯誤。
問題
- 如果叫用 API 時叫用
ConsumerApi.initialize()
,就會擲回例外狀況 執行個體已存在。如要解決這個問題,請先呼叫ConsumerApi.getInstance()
並評估傳回的Task
,以判斷是否 已有 API 執行個體。
2.0.0 (2023 年 9 月 15 日)
公告:破壞性變更
最低 API 級別規定已從 21 更新為 23。
將 Maps SDK 版本需求從 17.0.0 更新為 18.1.0
最低 Kotlin 標準程式庫版本需求從 1.6.10 更新為 1.9.0
更新 Google Play 服務依附元件版本
Play-services-base 程式庫最低版本需求更新自 v18.0.1 至 v18.2.0
最低 play-services-basement 程式庫版本需求從 18.0.0 更新為 18.2.0
已更新 play-services-location 程式庫最低版本規定 從 17.0.0 版到 21.0.1 版
最低的 play-services-tasks 程式庫版本需求已從 18.0.1 更新為 18.0.2
新增 androidx.room:room-runtime 程式庫,並將最低版本需求設為 2.5.2 版
更新下列依附元件版本
最低 android-maps-utils 程式庫版本需求從 v0.4.2 更新為 v3.5.2
com.google.android.datatransport:transport-backend-cct 最低版本 需求已從 3.0.0 版更新至 3.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 已從 2.0.0 版更新至 2.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
取代。使用 Consumer SDK 的應用程式,現在必須具備
targetSdkVersion
API 31 以上版本,compileSdkVersion
API 33 以上版本。使用 Consumer SDK 的應用程式現在必須啟用 Java 8 支援程式庫詳情請見 https://developer.android.com/studio/write/java8-support,瞭解如何執行 更新。
使用 ProGuard 或 Dexguard 的應用程式必須遷移至 R8。詳情請見 詳情請參閱 https://developer.android.com/build/shrink-code。
使用 Consumer SDK 的應用程式必須啟用去糖化功能。詳情請見 https://developer.android.com/studio/write/java8-support#library-desugaring 一文。
ConsumerApi.initialize()
方法現在會擲回例外狀況 則會在已建立 API 執行個體時叫用。必須使用ConsumerApi.getInstance()
傳回的Task
,才能判斷是否先前已建立 API 例項。
公告:API 淘汰事宜
淘汰
Trip.TripStatus
和Trip.TripType
註解類別,並新增 要取代的TripInfo.TripStatus
和TripInfo.TripType
註解類別 具體做法是指示 Kubernetes 建立並維護 一或多個代表這些 Pod 的物件在本次異動中,
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
類別。
其他變更和錯誤修正
支援要求最新的 Maps SDK 轉譯器。詳情請參閱「新版地圖轉譯器」。
提供從 18.1.0 版 (含) 到 19.0.0 版 (含) 的 Maps SDK 範圍支援。
修正「已超過期限」SDK 與 之間的內部通訊發生錯誤 Google 後端
修正小型螢幕和子母畫面模式的算繪問題。
遷移指南
1.99.1 (2023 年 8 月 31 日)
修正錯誤
修正 SDK 代管活動或片段遭到刪除時發生的當機問題。
修正 MapView 維度為 0 時發生的當機問題 ( 高度或寬度)。
修正在路線多邊形上投射車輛位置時發生的當機問題。
改善項目
- 在主機應用程式側載且沒有預設視覺資源時,可防止 SDK 當機。
1.99.0 (2023 年 6 月 22 日)
修正錯誤
修正小螢幕和子母畫面模式的算繪問題。
修正分享歷程期間的車輛閃爍問題。
1.2.1 (2023 年 6 月 7 日)
修正錯誤
- 修正造成車輛在分享行程期間閃爍的錯誤。
1.2.0 (2022 年 11 月 21 日)
修正錯誤
- 修正在
onTripActiveRouteTrafficUpdated
回呼中回報空白流量的問題。
新功能
- 「交通狀況感知多邊形」功能現已正式推出。
1.1.2 (2022 年 10 月 27 日)
修正錯誤
- 修正錯誤:如果
TripModel
的JourneySharingSession
啟動次數超過一次,路線多邊形就會消失。
公告:凍結對 Android 5 的支援 (2022 年 7 月 25 日)
針對 v1.1.1 SDK 版本,我們會額外提供一年的支援服務: 應用程式,適用於 API 級別 21 和 22。
也就是說:
在 Android 應用程式上執行的 Consumer SDK 將支援 Android 5 (API 級別 21) 以上版本,直到 2023 年 6 月 30 日為止。
2023 年 6 月 30 日之後,我們只支援 23 以上版本的 Android API 級別。 換句話說,我們將在該日期後停止支援所有 SDK 版本的 Android API 級別 21 和 22。這表示與 Android 21 相關的錯誤 否則我們將不會修正 SDK 版本 (包括 4.x) 中的 22 和 22,也不會修正 保證 SDK 能正常運作。
1.1.1 版 (2022 年 7 月 25 日)
依附元件變更
- 將支援的最低 Android API 級別降級至 21。
1.1.0 版 (2022 年 4 月 28 日)
- 內部改善措施。
v1.0.19 (2022 年 3 月 17 日)
修正錯誤
- 修正
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
取代,這兩者都與 Maps SDK 共用。
當機監控
新增當機偵測和記錄功能。
- 我們新增了選項,讓您選擇停用這項功能。這是為了進行更廣泛的全球異動監控作業而採取的做法。
驗證變更
- 從驗證介面中移除不必要的方法。
- 已移除
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 可能會因為與 準備就緒。
- SDK 不再包含未經模糊處理的
io.grpc
副本。 - 修正特定裝置發生交通折線閃爍錯誤。流量區段的端點現在會以圓角顯示。
0.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()
不再接受空值做為引數。
- 新增了
0.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
)。
導入方式異動
- 無論是否已註冊
LifecycleOwner
,ConsumerTripCallback
都不會再自動取消註冊TripStatus.COMPLETE
或TripStatus.CANCELED
。 - 自動相機現在預設為啟用,且一律不重新啟用或停用。
先前在開啟自動相機時,系統會自動重新啟用
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
第 0.9.1 版 (2020 年 3 月 23 日)
API 變更
- 已新增
TripInfo.getVehicleId()
、TripInfo.getNumberOfPassengers()
、TripInfo.getIntermediateDestinationIndex()
、TripInfo.getTripActiveRoute()
和TripInfo.getTripRemainingRoute()
。 - 新增
options
類別,用於ConsumerApi
初始化期間,讓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 適用的 Consumer SDK 會以 Jetified ZIP 封存檔形式提供。如要瞭解如何取消 Jetify,請參閱「Jetifier:反向 模式。
v0.8.1 版 (2019 年 9 月 13 日)
新功能
支援 ConsumerMapView。
ODRD 構件現在會送達 Maven 存放區,而非 .aar zipfile。 詳情請參閱將 Consumer SDK 新增至 app。
API 變更
將
ConsumerController.disableAutoCamera()
新增為centerMapForState()
。VehicleLocation.getUpdateTime()
現在會傳回 Long,代表 時間戳記 (以毫秒為單位)。簡化
AuthTokenFactory
介面,公開單一方法用於產生符記。已將AuthTokenFactory
從介面變更為 抽象類別以啟用 Java7 中的回溯相容性。這項變更 具回溯相容性,但產生單一服務權杖的舊版方法 ,且最終將會移除。
實作變更
素材資源現在會置中於圖示中心,因此不會產生陰影偏移。
從
setState
到JOURNEY_SHARING onStartTripMonitoring()
不必等待 查看受監控行程的狀態一律傳回第一次行程資料更新的資料,即使行程資料不完整也一樣 的同步。
將 Android 地圖公用程式新增為提供的依附元件。
修正錯誤
- 修正了針對 grpc keep 的 ProGuard 匯出語法錯誤。
0.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
ENROUTE_TO_PICKUP
、ARRIVED_AT_PICKUP
、ENROUTE_TO_DROPOFF
和COMPLETE
建立ConsumerMapState.JOURNEY_SHARING
。「
StateChangeCallbacks
」已更新。新增了
onStateJourneySharing()
。已移除
onStateWaitingForPickup()
、onStateDriverArrived()
、onStateEnroute()
和onStateEndofTrip()
。
修正錯誤
修正在行程監控功能開始於行程進行中 (而非路線起點) 時,路線不會裁剪至車輛位置的錯誤。
修正了以下錯誤:已註冊的事件監聽器無法叫用行程回呼 TripManager 擷取行程資料後的 Tripmanager。
相機縮放功能現在只會顯示目前路線和下一個行程路線控點 (屬於行程的路線控點)。即使能看到另一條路段 則不會包含該物件先前,當車輛在前往接送地點的途中或已抵達接送地點時,系統會在縮放畫面中加入下車地點。但現在已非如此。
改善項目
使用 Driver 資料填入第 0 個剩餘路線點 (剩餘路線點清單會從
ConsumerTripCallback.onTripRemainingWaypointsUpdated
和TripInfo.getRemainingWaypoints()
傳回)。當清單中第一個路線點的預估抵達時間變更時,請更新所有剩餘路線點的預估抵達時間。
只有在駕駛人抵達上車地點時,才強制重新啟用自動攝影機。先前 會在每次行程狀態變更時重設為自動相機。自動攝影機為 仍會預設啟用如有新的行程,自動攝影機不會重新啟用 已經設定,但尚未對
startTripMonitoring()
發出新呼叫。
0.6.1 版 (2019 年 6 月 26 日)
新功能
- 共乘功能支援行程分享。
API 變更
ConsumerController.getConsumerMapStyle()
現在會傳回ConsumerMapStyle
而非Task<ConsumerMapStyle>
。新增了
PolylineStyle.setZIndex()
。
修正錯誤
路徑動畫現在只會在路徑片段處於同步狀態時產生。 進而提升使用者體驗
修正駕駛人位置更新彼此相近時,動畫插補期間車輛「閃爍」的問題。
修正車輛從路線起點開始,而非 中途啟動行程監控 有效的行程。
當使用中的路線與其他路線重疊時,請在其他路線上方顯示使用中的路線折線。
改善項目
- 現在,請使用未經模糊處理的方法公開 gRPC
Status
類別。
0.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
。