本節提供 Android 版 Consumer SDK 的版本資訊。
2.99.0 (2024 年 11 月 19 日)
修正錯誤
- 修正
ConsumerApi.cleanUp()
執行時間過長時發生的 ANR 錯誤。 - 修正以下問題:駕駛員收到 gRPC 錯誤,程式碼為「INTERNAL」,訊息為「Panic! 這是錯誤!這項功能會在整合後逐步推出 (從 0% 開始)。
2.3.0 (2024 年 8 月 2 日)
API 變更
新增雲端式地圖樣式設定支援功能,方便您為使用者打造自訂的道路地圖體驗,不必在每次變更地圖樣式時更新應用程式的程式碼。詳情請參閱「使用雲端式地圖樣式設定地圖樣式」。
將
getServerTimeMillis()
方法新增至VehicleLocation
,以判斷 Fleet Engine 收到位置更新的時間。
2.2.0 (2024 年 5 月 7 日)
API 變更
- 新增支援 API,以便整合 Jetpack Compose。這是實驗性質的功能。如要進一步瞭解如何與 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 程式庫版本需求已從 18.0.1 更新為 18.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。
如果在已建立 API 例項時叫用
ConsumerApi.initialize()
方法,現在會擲回例外狀況。ConsumerApi.getInstance()
傳回的Task
必須用於判斷是否先前建立了 API 例項。
公告: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
類別。
其他變更和錯誤修正
支援要求最新的 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 版本,我們會為在 Android 5 上執行的應用程式提供額外一年的支援,包括 API 級別 21 和 22。
也就是說:
在 Android 應用程式上執行的 Consumer SDK 將支援 Android 5 (API 級別 21) 以上版本,直到 2023 年 6 月 30 日為止。
自 2023 年 6 月 30 日起,我們只支援 Android API 級別 23 以上版本。換句話說,我們將在該日期後停止支援所有 SDK 版本的 Android API 級別 21 和 22。也就是說,任何 SDK 版本 (包括 4.x) 中與 Android 21 或 22 相關的錯誤都不會修正,我們也不保證 SDK 會正常運作。
第 1.1.1 版 (2022 年 7 月 25 日)
依附元件變更
- 將支援的最低 Android API 級別降級至 21。
v1.1.0 (2022 年 4 月 28 日)
- 內部改善措施。
v1.0.19 (2022 年 3 月 17 日)
修正錯誤
- 修正
ConsumerApi
類別中的記憶體流失問題。
第 1.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
。 - AutoCamera 現已預設為啟用,且不會自行重新啟用或停用。先前,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
第 0.9.1 版 (2020 年 3 月 23 日)
API 變更
- 已新增
TripInfo.getVehicleId()
、TripInfo.getNumberOfPassengers()
、TripInfo.getIntermediateDestinationIndex()
、TripInfo.getTripActiveRoute()
和TripInfo.getTripRemainingRoute()
。 - 新增
options
類別,用於ConsumerApi
初始化期間,讓FleetEngine
地址可動態設定。如果 API 未以FleetEngine
值呼叫,則會嘗試從 Android 資訊清單擷取該值,否則會改用預設值。
改善項目
- 行程狀態為
ARRIVED_AT_PICKUP
時,系統不會顯示路線多邊形。 - 改善了離開行車路線的車輛追蹤功能 (需要 DriverSDK 1.15):
- 車輛追蹤功能在車輛駛過上車地點後,不會將車輛固定在路線上。
- 車輛追蹤功能可讓您顯示車輛是否在道路上,例如在未繪製的停車場內。
- 當駕駛人的目的地與 Fleet Engine 中的目的地不同時,車輛圖示現在會更新。
第 0.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 zip 檔案出貨。詳情請參閱「在應用程式中加入 Consumer SDK」。
API 變更
新增
ConsumerController.disableAutoCamera()
做為centerMapForState()
的反向函式。VehicleLocation.getUpdateTime()
現在會傳回代表時間戳記 (以毫秒為單位) 的 Long。簡化
AuthTokenFactory
介面,公開單一方法用於產生符記。將AuthTokenFactory
從介面變更為抽象類別,以便在 Java 7 中啟用回溯相容性。這項變更具有回溯相容性,但單一服務權杖產生作業的舊方法已淘汰,並將在日後移除。
實作變更
素材資源現在會置中於圖示中心,並消除陰影偏移。
setState
至JOURNEY_SHARING onStartTripMonitoring()
,而非等待監控的旅程狀態。即使行程資料不同步,系統仍會一律傳回首次行程資料更新的資料。
新增 Android Map Utils 做為提供的依附元件。
修正錯誤
- 修正了針對 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
類別。- 您可以使用
ConsumerTripManager.getActiveTripInfo()
取得目前行程的TripInfo
。
- 您可以使用
新增了
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()
傳回)。當清單中第一個路線點的預估抵達時間變更時,請更新所有剩餘路線點的預估抵達時間。
只有在駕駛人抵達上車地點時,才強制重新啟用自動攝影機。先前,autocamera 會在每次行程狀態變更時重設為啟用狀態。根據預設,Autocamera 仍會啟用。如果在未重新呼叫
startTripMonitoring()
的情況下設定新的有效行程,Autocamera 就不會重新啟用。
v0.6.1 (2019 年 6 月 26 日)
新功能
- 共乘功能支援行程分享。
API 變更
ConsumerController.getConsumerMapStyle()
現在會傳回ConsumerMapStyle
,而非Task<ConsumerMapStyle>
。新增了
PolylineStyle.setZIndex()
。
修正錯誤
路線動畫現在只會在路線路段同步時顯示,進而改善使用者體驗。
修正駕駛人位置更新彼此相近時,動畫插補期間車輛「閃爍」的問題。
修正在行程監控功能於行程進行中啟動時,車輛會從路線起點開始行駛,而不是最新位置的錯誤。
當使用中的路線與其他路線重疊時,請在其他路線上方顯示使用中的路線折線。
改善項目
- 現在,請使用未經模糊處理的方法公開 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
狀態中的攝影機動畫。 - 以
AndroidChannelBuilder
取代ManagedChannelBuilder
。