Android 消費者 SDK 版本資訊

本節提供 Android 版 Consumer SDK 的版本資訊。

2.99.0 (2024 年 11 月 25 日)

修正錯誤

  • 修正 ConsumerApi.cleanUp() 執行時間過長時發生的 ANR 錯誤。這項功能會在整合後逐步推出 (從 0% 開始)。
  • 修正以下問題:驅動程式收到 gRPC 錯誤,程式碼為「INTERNAL」,訊息為「Panic! 這是錯誤!這項功能會在整合後逐步推出 (從 0% 開始)。

2.3.0 (2024 年 8 月 2 日)

API 變更

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 服務基礎程式庫版本需求從 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:ConsumerTripConsumerTripCallbackConsumerTripManagerConsumerTripOptions。這些元素已由 TripModelTripModelCallbackTripModelManagerTripModelOptions 取代。

  • 使用 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.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 類別。

其他變更和錯誤修正

  • 支援要求最新的 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 日)

修正錯誤

  • 修正錯誤:如果 TripModelJourneySharingSession 啟動次數超過一次,路線多邊形就會消失。

公告: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 會正常運作。

v1.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 變更

  • ConsumerTripConsumerTripManager 類別的變更。

    • 清理部分方法名稱,讓其意義更明確,並與 iOS 平台保持一致。
  • 變更 ConsumerTripCallbackConsumerTripTripInfo

    • 變更部分類別名稱,以便與 iOS 保持一致。導入 TripModelTirpModelManagerTripModelOptions,以淘汰 ConsumerTripConsumerTripManagerConsumerTripOptions

    • 清除部分方法名稱。修訂或新增方法的 JavaDoc 註解,以便更清楚地表達意義。

    • 改善錯誤處理機制。

樣式自訂

  • 已淘汰的舊版包裝函式

    • MarkerStyleOptionsPolylineStyleOptions 已淘汰,並由 MarkerOptionsPolylineOptions 取代,這兩者都與 Maps SDK 共用。

當機監控

  • 新增當機偵測和記錄功能。

    • 我們新增了選項,讓您選擇停用這項功能。這是為了進行更廣泛的全球異動監控作業而採取的做法。

驗證變更

  • 從驗證介面中移除不必要的方法。
    • 已移除 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 在地圖準備就緒前與地圖互動時可能會當機。
  • 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_POINTSUGGESTED_PICKUP_POINTHIGHLIGHTED_PICKUP_POINTSELECTED_DROPOFF_POINT
  • OnConsumerMarkerClickCallbackConsumerMapReadyCallback 從介面變更為抽象類別。
  • 新增 ConsumerController.getCameraUpdate()ConsumerController.isAutoCameraEnabled()ConsumerController.enableAutoCamera()
  • 移除自訂 FAB 及其相關方法 (ConsumerController.isMyLocationFabEnabledConsumerController.setMyLocationFabEnabled)。

實作變更

  • 無論是否已註冊 LifecycleOwnerConsumerTripCallback 都不會再自動取消註冊 TripStatus.COMPLETETripStatus.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 日)

新功能

API 變更

  • 新增 ConsumerController.disableAutoCamera() 做為 centerMapForState() 的反向函式。

  • VehicleLocation.getUpdateTime() 現在會傳回代表時間戳記 (以毫秒為單位) 的 Long。

  • 簡化 AuthTokenFactory 介面,公開單一方法用於產生符記。將 AuthTokenFactory 從介面變更為抽象類別,以便在 Java 7 中啟用回溯相容性。這項變更具有回溯相容性,但單一服務權杖產生作業的舊方法已淘汰,並將在日後移除。

實作變更

  • 素材資源現在會置中於圖示中心,因此不會產生陰影偏移。

  • setStateJOURNEY_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_PICKUPARRIVED_AT_PICKUPENROUTE_TO_DROPOFFCOMPLETE 建立 ConsumerMapState.JOURNEY_SHARING

    • StateChangeCallbacks」已更新。

    • 新增了 onStateJourneySharing()

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

修正錯誤

  • 修正在行程監控功能開始於行程進行中 (而非路線起點) 時,路線不會裁剪至車輛位置的錯誤。

  • 修正 TripManager 已擷取行程資料後,未為 Tripmanager 上註冊的事件監聽器叫用行程回呼的錯誤。

  • 相機縮放功能現在只會顯示目前路線和下一個行程路線控點 (屬於行程的路線控點)。即使可見剩餘路段,縮放功能也不會納入該路段。先前,當車輛在前往接送地點的途中或抵達接送地點時,系統會在縮放畫面中加入下車地點。但現在已非如此。

改善項目

  • 使用 Driver 資料填入第 0 個剩餘路線點 (剩餘路線點清單會從 ConsumerTripCallback.onTripRemainingWaypointsUpdatedTripInfo.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