本節包含 Android 版 Consumer SDK 的版本資訊。
公告:停止支援 API 級別 23、24 和 25
根據行動作業系統版本支援政策,我們將在即將推出的 Android 版 Consumer SDK 主要版本中,停止支援 Android 6 和 7 (API 級別 23、24 和 25)。
自 2025 年第四季起,發布的 Android 版 Consumer SDK 版本將支援 Android 8 (API 級別 26) 以上版本。舊版 SDK 仍會支援 Android 6 和 7。
如果依附元件未指定版本號碼,IDE 會載入最新版 SDK,而應用程式的新建構版本將不支援 Android 6 和 7。
在應用程式的建構依附元件中指定 Android 適用的 Consumer SDK 版本,即可控管何時提高新版應用程式支援的最低作業系統版本。
3.2.0 (2025 年 6 月 26 日)
- 改善內部記錄功能。
依附元件和設定變更
- 從 Android 適用的 Consumer SDK 3.2.0 版開始,應用程式必須升級至 Kotlin 2.1。
修正錯誤
- 使用折線長度,而非直線距離,做為內部動畫決策依據。
3.1.0 (2025 年 3 月 10 日)
- 改善內部記錄功能。
3.0.0 (2024 年 12 月 6 日)
依附元件和設定變更
- 從 Android 適用的 Consumer SDK 3.0.0 版開始,應用程式必須升級至 Kotlin 2.0。請參閱「Android Consumer SDK 3.0 遷移指南」。
- Consumer SDK 的 targetSdk 現在是 Android 14 (API 級別 34)。自 2024 年 8 月起,所有部署至 Google Play 商店的應用程式都必須符合這項規定。請參閱「符合 Google Play 的目標 API 級別規定」。
2.99.0 (2024 年 11 月 25 日)
修正錯誤
- 修正
ConsumerApi.cleanUp()
執行時間過長時發生的 ANR 錯誤。整合版本後,系統會逐步推出這項功能 (從 0% 開始)。 - 修正了驅動程式收到 gRPC 錯誤的問題,錯誤代碼為「INTERNAL」,訊息為「Panic! 這是蟲蟲!」整合版本後,系統會逐步推出這項功能 (從 0% 開始)。
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 建立的
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 標準程式庫版本需求從 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 程式庫,並將最低版本需求設為 v2.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 最低版本需求已從 3.0.1 更新至 3.1.9
androidx.lifecycle:lifecycle-extensions 的最低版本需求已從 2.0.0 版更新至 2.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()
方法會擲回例外狀況。傳回的Task
(由ConsumerApi.getInstance()
傳回) 必須用於判斷先前是否已建立 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 轉譯器。詳情請參閱「新版地圖轉譯器」一文。
支援的 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 能正常運作。
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 變更
ConsumerTrip
和ConsumerTripManager
類別的異動。- 清除部分方法名稱,讓意義更明確,並與 iOS 平台保持一致。
ConsumerTripCallback
、ConsumerTrip
和TripInfo
的變更。變更部分類別名稱,與 iOS 保持一致。導入
TripModel
、TirpModelManager
和TripModelOptions
,淘汰ConsumerTrip
、ConsumerTripManager
和ConsumerTripOptions
。修正部分方法名稱。修訂或新增方法的 JavaDoc 註解,以傳達更清楚的意義。
改善錯誤處理機制。
自訂樣式
已淘汰的舊版包裝函式
MarkerStyleOptions
和PolylineStyleOptions
已淘汰,並替換為MarkerOptions
和PolylineOptions
,這兩者都與 Maps SDK 共用。
監控當機情形
新增當機偵測和記錄功能。
- 我們新增了停用這項功能的選項。這是為了配合整個 Google 地圖團隊的重大計畫,監控當機情形。
驗證變更
- 從驗證介面中移除不必要的方法。
- 已移除
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
的未混淆副本。 - 修正特定裝置上交通資訊折線閃爍的錯誤。流量區隔現在會顯示圓角。
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()
不再接受以空值做為引數。
- 新增
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
)。
導入異動
- 無論是否已向
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 封存檔的形式發布。如要瞭解如何取消 Jetifier,請參閱「Jetifier:反向模式」。
v0.8.1 (2019 年 9 月 13 日)
新功能
支援 ConsumerMapView。
ODRD 構件現在會以 Maven 存放區的形式發布,而非 .aar zip 檔案。詳情請參閱「將 Consumer SDK 新增至應用程式」。
API 變更
新增
ConsumerController.disableAutoCamera()
做為centerMapForState()
的相反函式。VehicleLocation.getUpdateTime()
現在會傳回代表時間戳記 (以毫秒為單位) 的 Long。簡化
AuthTokenFactory
介面,只公開產生權杖的方法。將AuthTokenFactory
從介面變更為抽象類別,以在 Java7 中啟用回溯相容性。這項變更可回溯相容,但單一服務權杖的舊版產生方法已遭淘汰,最終會移除。
導入異動
素材資源現在會置中對齊圖示中心,消除陰影偏移。
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 上註冊的監聽器叫用行程回呼。
相機縮放功能現在只會顯示有效路線和下一個行程路線控點 (屬於行程的路線控點)。即使剩餘的路線段可見,縮放功能也不會納入。先前,車輛前往取貨地點或抵達取貨地點時,縮放畫面會包含下車地點。但現在已非如此。
改善項目
使用「駕駛人」資料填入第零個剩餘途中的途經點 (剩餘途中的途經點清單會從
ConsumerTripCallback.onTripRemainingWaypointsUpdated
和TripInfo.getRemainingWaypoints()
傳回)。當清單中第一個中途點的預計抵達時間變更時,更新所有剩餘中途點的預計抵達時間。
只有在司機抵達上車地點時,才強制重新啟用自動攝影機。先前,自動攝影機會在每次行程狀態變更時重設為啟用。自動攝影機功能仍預設為啟用。如果沒有重新呼叫
startTripMonitoring()
,系統就不會在新行程啟動時重新啟用自動攝影機。
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
狀態下的攝影機動畫。 - 已將「
ManagedChannelBuilder
」替換成「AndroidChannelBuilder
」。