本節包含 Android 版 Driver SDK 的版本資訊。
公告:停止支援 API 級別 23、24 和 25
根據行動作業系統版本支援政策,我們將在即將推出的 Android 版 Driver SDK 主要版本中,停止支援 Android 6 和 7 (API 級別 23、24 和 25)。
自 2025 年第四季起,Android 版 Driver SDK 發布的版本將支援 Android 8 (API 級別 26) 以上版本。舊版 SDK 會繼續支援 Android 6 和 7。
如果依附元件未指定版本號碼,IDE 會載入最新版 SDK,而應用程式的新建構版本將不支援 Android 6 和 7。
在應用程式的建構依附元件中指定 Android 適用的 Driver SDK 版本,即可控管何時提高新版應用程式支援的最低作業系統版本。
v6.2.0 (2025 年 6 月 18 日)
修正錯誤
- 修正在未提供
DriverStatusListener
的情況下呼叫DriverApi.createInstance()
時,NullPointerException
異常終止的問題。
依附元件和設定變更
從 Android 適用的 Driver SDK 6.2.0 版開始,應用程式必須升級至 Kotlin 2.1。
更新了支援的 Navigation SDK 版本範圍,包括 6.1.0 以上版本。
v6.1.0 (2025 年 3 月 10 日)
修正錯誤
- 改善內部記錄功能。
v5.99.1 (2025 年 1 月 10 日)
修正錯誤
- 修正問題:驅動程式收到 gRPC 錯誤,代碼為「INTERNAL」,且「Panic! 安裝後首次啟動應用程式時,會顯示「This is a bug!」(這是錯誤!) 說明。
v6.0.0 (2024 年 11 月 25 日)
修正錯誤
- 修正問題:驅動程式收到 gRPC 錯誤,錯誤代碼為「INTERNAL」,且「Panic! This is a bug!" 說明。
- 進行內部改善,減少位置資訊更新連線錯誤,尤其是在裝置切換網路時。整合版本後,系統會逐步推出這項功能 (從 0% 開始)。
API 更新
- 移除已淘汰的
StatusListener
介面。
依附元件和設定變更
- 在 POM.xml 中移除
glide:cronet-integration
的依附元件 - 更新 Navigation SDK 支援的版本範圍至 5.x 版。
- 從 Android 適用的 Driver SDK 6.0.0 版開始,應用程式必須升級至 Kotlin 2.0。
- 目標 SDK 現在是 API 級別 34。自 2024 年 8 月起,所有部署至 Google Play 商店的應用程式都必須遵守這項規定。請參閱「符合 Google Play 的目標 API 級別規定」。
v5.99.0 (2024 年 9 月 20 日)
修正錯誤
- 修正問題:驅動程式收到 gRPC 錯誤,錯誤代碼為「INTERNAL」,且「Panic! 「這是蟲蟲!」說明。整合版本後,系統會逐步推出這項功能 (從 0% 開始)。
- 進行內部改善,減少位置資訊更新連線錯誤,尤其是在裝置切換網路時。整合版本後,系統會逐步推出這項功能 (從 0% 開始)。
依附元件和設定變更
- 在 POM.xml 中移除
glide:cronet-integration
的依附元件
v5.0.0 (2023 年 9 月 12 日)
依附元件和設定變更
- Navigation SDK 已更新至 5.x 版。
- 已將
minSdkVersion
升級至 API 23。 - Kotlin 版本升級至 1.9.0。
- 已新增 Room 的依附元件。* 使用 Driver SDK 的應用程式現在必須採用
targetSdkVersion
API 31 以上版本。 - 使用 Driver SDK 的應用程式現在必須啟用 Java 8 程式庫支援。如需更新操作說明,請參閱 https://developer.android.com/studio/write/java8-support。
- 使用 Proguard 或 Dexguard 的應用程式必須遷移至 R8。詳情請參閱 https://developer.android.com/build/shrink-code。
- 使用 Driver SDK 的應用程式必須啟用 desugaring。如需操作說明,請參閱 https://developer.android.com/studio/write/java8-support#library-desugaring。
修正錯誤
- 修正 disableLocationTracking 同步處理問題。
- 導入新的 DriverStatusListener 介面,可在例外狀況狀態更新中回報原因。
- 修正駕駛人保持靜止不動的問題 (自 4.99.0 版起適用)。
v4.99.0 (2023 年 8 月 9 日)
- 支援 NavSDK 依附元件的一系列版本。** 支援 4.5.0 版至 5.0.0 版 (不含 5.0.0 版)。
- 防止車輛靜止時預計抵達時間自行縮短。這項變更會以實驗形式逐步推出,因此並非所有應用程式都會同時看到這項變更。
4.5.0 版 (2023 年 5 月 12 日)
- 將 Navigation SDK 依附元件更新至 4.5 版。請注意,Navigation SDK 的群組和構件 ID 已變更。
v4.4.3 (2023 年 3 月 20 日)
依附元件變更
- 將 Navigation SDK 依附元件升級至 4.4.1 版。
v4.4.2 (2023 年 2 月 15 日)
修正錯誤
如果 SDK 遇到暫時性的連線問題,可縮短網路復原時間。這項修正仍在實驗階段。
捨棄只包含「原始」位置資訊的
UpdateVehicle
要求。修正「路徑總覽」Alpha 版 API 中的競爭狀況。
4.4.1 版 (2022 年 11 月 18 日)
修正錯誤
- 修正流量上傳邏輯中的錯誤。
其他異動
- 內部改善要求標頭和狀態碼回報功能。
v4.4.0 (2022 年 9 月 21 日)
修正錯誤
- 修正錯誤:如果 API 執行個體未清除,「使用 Google 地圖開車」通知就無法移除。
依附元件變更
- 將 Navigation SDK 依附元件升級至 4.2.2 版。
v4.3.0 (2022 年 8 月 24 日)
內部改善。
公告:停止支援 Android 5 (2022 年 7 月 21 日)
在最新版 SDK (4.2.0 版) 中,我們將為在 Android 5 上執行的應用程式提供額外一年的支援,包括 API 級別 21 和 22。
也就是說:
- 在 2023 年 6 月 30 日前,Android 應用程式執行的 Navigation SDK 和 Driver SDK 最低支援 Android 5 (API 級別 21)。
- 2023 年 6 月 30 日後,我們只會支援 Android API 級別 23 以上版本。 換句話說,自該日期起,我們將停止支援所有 SDK 版本的 Android API 級別 21 和 22。也就是說,任何 SDK 版本 (包括 4.x) 中與 Android 21 或 22 相關的錯誤都不會修正,我們也不保證 SDK 能正常運作。
這項通知會取代 2021 年 6 月 21 日發布的 Android 21 和 22 支援凍結通知,以及 2021 年 10 月 18 日發布的 Android 23、24 和 25 支援凍結通知。
v4.2.0 (2022 年 6 月 8 日)
依附元件變更
- 將 Nav SDK 依附元件升級至 4.1.3 版。
- 將支援的最低 Android API 級別降至 21。
v4.1.0 (2022 年 4 月 28 日)
API 更新
將
Task
物件的parentId
屬性重新命名為trackingId
。舊版屬性目前仍存在,但已遭淘汰。
v4.0.0 (2021 年 11 月 29 日)
這個版本支援的最低 Android API 級別為 23。
API 更新
在這個版本中,Android 版 Driver SDK 已更新,包含下列變更。
VehicleStops API 異動
VehicleStop
物件現在會參照 TaskInfo
物件清單,而非 Task
物件清單。如需工作狀態,建議您在應用程式程式碼中追蹤。
新增類別:
TaskInfo
以
getTaskInfoList
函式取代VehicleStop
的getTasks
函式。以
setTaskInfoList
函式取代VehicleStop.Builder
的setTasks
函式。
監控當機情形
新增當機監控和回報功能,協助提升 SDK 穩定性。
這項功能預設為啟用,但如果您在初始化 SDK 前呼叫 setAbnormalTerminationReportingEnabled()
並傳遞 false
值,即可停用這項功能。
- 在
DriverApi
中新增setAbnormalTerminationReportingEnabled
函式。
Async getRemainingVehicleStops
- 將
DeliveryVehicleReporter
的getRemainingVehicleStops
函式變更為傳回 Future<List<VehicleStop>>,而非 List<VehicleStop>。
驗證
已從 AuthTokenContext
介面中移除不必要的屬性。ServiceType
已淘汰。現在您只需要取得所含車輛 ID 和工作 ID 的聲明,不必再依賴 ServiceType
。
已從
AuthTokenContext
中移除ServiceType
。已從
AuthTokenContext
中移除getServiceType()
。已從
AuthTokenContext.Builder
中移除setServiceType
。
2021 年 10 月 18 日 - 停止支援 API 級別 23、24 和 25
閱讀 10 月 18 日公告
因應內部依附元件的變更,自 2022 年第三季起,新版 Android 版 Navigation 和 Driver SDK 將不再支援 Android API 級別 23、24 和 25 (Android 6、7.0 和 7.1)。
自 2022 年第三季起,Android 版 Navigation 和 Driver SDK 僅支援執行 Android API 級別 26 以上的裝置。
以 Android 適用的 Navigation 和 Driver SDK 4.x 以下版本建構的應用程式版本,仍可在搭載 Android API 級別 25 以下版本的裝置上運作。
3.0.4 版 (2021 年 7 月 28 日)
功能
這個版本正式將 Driver SDK 從 Navigation SDK 中分離出來。詳情請參閱遷移指南。
API 更新
新增了下列方法:
`RidesharingDriverApi.getDriverSdkVersion()`提升穩定性並修正錯誤
回報 PERMISSION_DENIED
錯誤,而不是將其歸類為連線錯誤。
淘汰公告 (2021 年 6 月 21 日)
這份公告說明自上述日期起,Android 版 Driver SDK 和 Android 版 Navigation SDK 的淘汰項目。我們也已向受影響的客戶發送重大服務公告 (MSA)。
Android 適用的 Nav/Driver SDK 將改為 Android 適用的 Navigation SDK v3.x 和 Android 適用的 Driver SDK v3.x (二進位檔會分開)
為簡化客戶整合程序,並加快提供實用功能的速度,我們將 Navigation SDK for Android 和 Driver SDK for Android 分成兩個不同的二進位檔:
- Android 版 Navigation SDK,可為駕駛人提供導航/路線規劃功能。
- Android 適用的 Driver SDK,可讓您運用 Fleet Engine 有狀態的網路服務,掌握行程或工作進度和分配情形。
請注意,Android 版 Driver SDK 必須依附於 Android 版 Navigation SDK,才能提供核心路徑規劃功能。
異動內容
v3 的主要異動如下:
- 兩個二進位檔,而非一個。
- Android 類別的 Driver SDK 套件定義更清楚。
- Navigation SDK for Android 包含 Maps SDK for Android,是封裝的一部分 (自 Navigation SDK for Android v2 起)。
- 這項功能可讓地圖和導航功能共存於同一張地圖上 (例如在 NavigationView 上繪製折線),並減少記憶體用量,因為系統只會使用一張地圖,而不是兩張。
- Navigation SDK for Android 3.0 版的功能與 Navigation SDK for Android 相比仍有不足,但 3.2 版將解決大部分問題。詳情請參閱「我可以做什麼?何時可以做?」。
- 記錄功能,方便我們偵錯您可能遇到的問題。
下列方法也已在第 3 版中移除,先前已標示為淘汰,且已有替代解決方案:
- 下列 Nav/Driver SDK 方法已於 2020 年 8 月 10 日發布的 1.16 版中淘汰,並在 3.0 版中移除:
Waypoint#fromLatLng(*)
Waypoint#fromPlaceId(*)
Navigator#startGuidance(resumeIntent)
NavigationApi#initForegroundServiceManager(*)
- 為求完整和清楚,請注意,從 v1 遷移至 v2 時,系統移除了多種方法。其中大多數是為了整合 Navigation SDK for Android 和 Maps SDK for Android 之間的重複類別。請參閱遷移指南,進一步瞭解這些異動。
Android 版 Driver SDK 和 Android 版 Navigation SDK 1.x 版已淘汰
導覽/駕駛人 SDK 第 1 版於 2018 年發布,第 3 版也即將推出,因此我們決定停用第 1 版,避免支援多個主要版本而造成資源浪費。
不必支援這個額外版本後,我們就能節省時間,進而為最新主要版本提供更完善的支援,並建構對客戶而言更重要的功能。
因此,我們已淘汰 Nav/Driver SDK 1.x 版,並於 2022 年 6 月 21 日後停止維護。
請花點時間瞭解各 SDK 版本的淘汰程序。
Android 21 和 22 版 Navigation 與 Driver SDK 終止支援
閱讀撤銷公告
即將推出的 Android 版 Navigation SDK 4.0 和 Android 版 Driver SDK,最低支援 [Android 6.0 (API 級別 23)](https://developer.android.com/studio/releases/platforms#6.0){: .external}。目前支援的最低版本為 Android 5.0 (API 級別 21)。我們預計在 2021 年第 4 季發布 4.0 版。也就是說:
- 以 v4.x 之前的版本建構的應用程式版本,仍可在 Android 21 和 22 裝置上運作。整合目前 SDK 的司機應用程式,在搭載 Android 21 以上版本的裝置上仍可正常運作,與先前相同。
- 使用 Driver SDK for Android 和 Navigation SDK for Android 4.x 版 (預計於 2021 年第 4 季推出,實際情況可能有所變動) 建構的應用程式版本,將無法安裝在搭載 Android 21 和 22 的裝置上。4.x 版的最低 Android 版本為 6.0 (API 級別 23),因此使用即將推出的 4.x 版建構的應用程式版本,只能由搭載 Android 23 以上版本的裝置接收。換句話說,我們的 SDK 相關變更和您所做的任何應用程式變更,都無法傳送給搭載 Android 21 和 22 的裝置。
下表說明您要升級的 Navigation SDK for Android v3 和 Driver SDK for Android v3 版本,以及這些版本何時推出。
你使用哪些 Driver 平台功能? | 你是否使用這些功能? | 接著,您應該升級至下列第一個可用版本: | 預計推出時間 (可能異動) |
遷移連結 |
---|---|---|---|---|
僅限導航 (NavSDK 方法) |
否 | 導航 SDK 3.0.1 版 | 現在 | 使用指南 |
是 | NavSDK 3.5 版 (預計) | 2021 年 9 月 | ||
導覽和 Fleet Engine 追蹤 (NavSDK 和 DriverSDK 方法) | 否 | 導航 SDK 3.0 版和 Driver SDK 3.0 版 | 發布時提供 Driver 3.0 版遷移指南 | |
是 | NavSDK v3.x 和 DriverSDK v3.0 |
如要繼續使用已移除的方法,可以保留在 1.x 版,但 2022 年 6 月 21 日後,我們不會提供支援或維護服務 (請參閱下一節)。
建議您改用 3.x 版。也就是說:
* v1.x 的最新版本將於 2021 年第 4 季發布 (因此 v1 會從那時起「凍結功能」)。
* 這個最終版本在 2022 年 6 月 21 日前,仍可修補 6 個月。 之後,我們將無法回覆 v1.x 的錯誤或功能要求。
請花點時間詳閱下表和 [遷移指南](/maps/documentation/navigation-sdk-android/v2/migration),瞭解這些異動。
我可以在何時完成哪些事項?
如果你目前使用... | 你是否使用這些功能? | 立即升級 | 2021 年 9 月升級 | 遷移連結 |
---|---|---|---|---|
v1.x (未使用 FleetEngine.java / 駕駛人功能) |
否 | NavSDK 3.0 版 | 使用指南 | |
是 | 沒有選項 | NavSDK 3.x | ||
v1.x (使用 FleetEngine.java / Driver 功能) |
否 | 沒有選項 | NavSDK 3.x + DriverSDK 3.x |
上述指南,以及發布時提供的 Driver 3.0 遷移指南。 |
是 |
建議您先通知使用 Android 21 和 22 裝置的駕駛人升級至較新的 Android 版本 (最低 Android 6.0),再將 Driver SDK for Android 和 Navigation SDK for Android v4.x 以上版本整合至駕駛人應用程式。
v1.15.3 (2020 年 10 月 9 日)
API 更新
- Driver SDK 現在會訂閱 Navigation SDK 的路況更新,並傳送至 Fleet Engine API。
提升穩定性並修正錯誤
- 修正 gRPC 執行階段異常終止問題。
v1.15.2
功能
新增停止顯示持續性通知的功能。如果 Fleet Engine 執行個體停止回報位置資訊,Navigator
會停止提供指引、取消註冊所有導覽事件監聽器,並暫停 NavigationFragment
或 NavigationView
。
提升穩定性並修正錯誤
- 修正了清除 Fleet Engine 執行個體時,導致系統擲回例外狀況的錯誤。
v1.15.1 (2020 年 5 月 12 日)
功能
初步分析 1.15.0 版的資料後,我們發現穩定位置回報功能有顯著改善 (減少「卡住」的位置)。這個修補程式可讓您繼續使用改良版的位置資訊報表。ANR 問題與這些改善措施無關。
提升穩定性並修正錯誤
- 修正錯誤:有時消費者應用程式會在路線開頭顯示直線。
- 修正錯誤:SDK 回報位置資訊時可能導致 ANR。這是因為
onArrival()
改善項目容易發生鎖定爭用情形。我們在某些情況下能穩定重現 ANR,並驗證修正檔已解決問題。修正後,修改過的測試應用程式執行了八小時,期間未發生 ANR。
v1.15.0 (2019 年 3 月 23 日)
功能
- 在開始、偏離路線和抵達事件中導入導航指引狀態,以提升車輛位置追蹤功能。
- 新增功能:無論導航狀態為何,都能持續取得道路對齊位置資訊。
- 新增路徑比對前的位置資訊,例如準確度。
提升穩定性並修正錯誤
- 將 navsdk 的 minSdkVersion 提高至 19。
- 修正錯誤:伺服器端反向地理編碼失敗時,系統不會採用緯度/經度航點名稱。
v1.14.2 版 (2019 年 2 月 2 日)
功能
- 防止 DriverSDK 將 0,0 位置資訊傳送至 Fleet Engine (改善行程分享和分配位置輸入)。
- 新增記錄功能,改善位置資訊停滯問題,並減少行程分享功能的回溯次數。
- 除非間隔變更,否則請忽略對
setLocationReportingInterval()
的重複呼叫。 - 更新
setReportingInterval()
方法的 Javadoc,目的是避免以相對於所用間隔的高速率重複呼叫這個方法。 - 改善 API 29 的定位可靠性。
v1.13.0
提升穩定性並修正錯誤
- 新增 okhttp 的依附元件,用戶端必須將其新增至 gradle 建構作業。
v1.11.7 (2019 年 10 月 18 日)
提升穩定性並修正錯誤
- 現在,系統會在特定目的地的
onArrival()
觸發後,繼續更新位置資訊。 - 預設通知 (在 Free Nav 模式下為常數字串) 會與導航通知設定的色彩配置相符。詳情請參閱「共用持續性通知」。
- 修正問題:延遲的位置資訊更新事件可能會導致錯誤的位置資訊更新,進而造成路線開頭出現直線等異常情況。
v1.11.6 (2019 年 10 月 4 日)
API 更新
- 推出一系列變更,確保 Driver SDK 在網路連線中斷後,能快速恢復位置資訊更新。網路連線恢復後,系統會在下次排定的位置資訊更新時間再次更新位置資訊。
提升穩定性並修正錯誤
setVehicleState()
現在會立即傳回。更新 FleetEngine 現在會在背景執行緒上進行。修正應用程式無回應 (ANR) 問題。- 修正問題:使用舊版 Consumer SDK 時,行程分享路線會顯示為直線。確保 Driver SDK 不會將一次性航點新增至路線。