Android 消費者 SDK 版本資訊

本節包含 Consumer SDK for Android 的版本資訊。

2.1.0 (2024 年 1 月 17 日)

修正錯誤

  • 修正 SDK 在應用程式生命週期內多次初始化時發生的當機問題。

API 變更

  • 推出方法來擷取 SDK 建立的 GoogleMap 例項 (ConsumerGoogleMap.getGoogleMap())。
  • 導入 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 標準程式庫最低版本要求已從 v1.6.10 更新至 1.9.0 版

  • 更新 Google Play 服務依附元件版本

    • play-services-base 程式庫最低版本需求已從 18.0.1 版更新至 18.2.0 版

    • play-services-basement 程式庫最低版本需求已從 v18.0.0 更新至 18.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 程式庫最低版本需求已從 0.4.2 版更新至 3.5.2 版

    • com.google.android.datatransport:transport-backend-cct 最低版本需求已從 3.0.0 版更新至 3.1.9 版

    • com.google.android.datatransport:transport-runtime 最低版本需求已從 v3.0.1 更新至 3.1.9 版

    • androidx.lifecycle:lifecycle-extensions 最低版本要求已從 v2.0.0 更新至 2.2.0 版

    • androidx.lifecycle:lifecycle-common-java8 最低版本要求已從 v2.0.0 更新至 2.6.1 版

    • androidx.appcompat:appcompat 最低版本要求已從 1.0.0 版更新至 1.6.1 版

    • androidx.fragment:fragment 最低版本需求已從 1.0.0 版更新為 v1.6.1

  • 移除下列先前淘汰的 API:ConsumerTripConsumerTripCallbackConsumerTripManagerConsumerTripOptions。已由 TripModelTripModelCallbackTripModelManagerTripModelOptions 取代。

  • 使用 Consumer SDK 的應用程式現在必須具有 API 31 以上級別的 targetSdkVersioncompileSdkVersion 為 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 轉譯器。詳情請參閱「新版地圖轉譯器」一文。

  • 提供 Maps SDK 從 18.1.0(含) 到 19.0.0 版(專屬) 版本的支援。

  • 修正 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 提供額外一年的支援。

也就是說:

  • 在 2023 年 6 月 30 日前,在 Android 應用程式上執行的 Consumer SDK 將支援最低 Android 5 (API 級別 21)。

  • 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。

1.1.0 版 (2022 年 4 月 28 日)

  • 內部改善。

1.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 參數。

0.9.28 版 (2021 年 5 月 18 日)

API 變更

  • 已更新所有 ConsumerTripCallback 方法,以使用 TripInfo 做為參數。
  • 新增 ConsumerTrip.isRefreshing(),指出 ConsumerTrip 是否會以 Fleet Engine 的最新行程資訊主動更新。
  • 已新增 ConsumerTripCallback.onTripRemainingRouteDistanceUpdated()
  • 已新增 ConsumerTripCallback.onTripRemainingRouteUpdated()
  • 將 Guava 傳回類型 (ImmutableSetImmutableList) 替換為 java.util 對等類別。
  • 套件名稱變更:

    • com.google.android.library.ridesharing.common.AuthTokenContext -> com.google.android.library.ridesharing.consumer.auth.AuthTokenContext
    • com.google.android.library.ridesharing.common.AuthTokenFactory -> com.google.android.library.ridesharing.consumer.auth.AuthTokenFactory
    • com.google.android.library.ridesharing.common.FleetEngineServiceType -> com.google.android.library.ridesharing.consumer.auth.FleetEngineServiceType - com.google.android.library.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) 之間產生更明確的關係。如要瞭解如何遷移至新架構,請參閱模組化遷移指南。- 現在從 ConsumerTripManager.getTrip() 取得 ConsumerTrip 物件。
    • 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)。

導入方式異動

  • 無論是否使用 LifecycleOwner 註冊的 ConsumerTripCallback,都不會再自動在 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

0.9.1 版 (2020 年 3 月 23 日)

API 變更

  • 已新增 TripInfo.getVehicleId()TripInfo.getNumberOfPassengers()TripInfo.getIntermediateDestinationIndex()TripInfo.getTripActiveRoute()TripInfo.getTripRemainingRoute()
  • 已新增在 ConsumerApi 初始化期間使用的 options 類別,以便動態設定 FleetEngine 位址。如果不是使用 FleetEngine 值呼叫 API,系統會嘗試從 Android 資訊清單擷取該 API,否則就會改回預設值。

改善項目

  • 行程狀態為 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:反向模式」。

0.8.1 版 (2019 年 9 月 13 日)

新功能

API 變更

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

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

  • 簡化 AuthTokenFactory 介面,公開用於產生權杖的單一方法。已將 AuthTokenFactory 從介面變更為抽象類別,以在 Java7 中啟用回溯相容性。這項變更具有回溯相容性,但用於產生單一服務權杖的舊方法已淘汰,且最終將會移除。

導入方式異動

  • 素材資源現已置中至圖示中心,並消除陰影偏移。

  • 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 上註冊的事件監聽器叫用行程回呼

  • 相機縮放現在只包含有效路線和下一個行程路線控點 (屬於行程的路線點)。即使剩餘的路段可見,縮放也一律不會包含這些路段。先前,當車輛開始規劃前往上車地點,或已抵達上車地點時,縮放等級就會納入下車地點。但這已不適用。

改善項目

  • 使用驅動程式資料填入第零個剩餘路線控點 (剩餘的路線控點清單會從 ConsumerTripCallback.onTripRemainingWaypointsUpdatedTripInfo.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 取代。