Android 版本資訊的 Driver SDK

本節包含適用於 Android 的 Driver SDK 版本資訊。

5.0.0 版 (2023 年 9 月 12 日)

依附元件和設定變更

  • Navigation SDK 已更新至 5.x 版。
  • 已將 minSdkVersion 升級至 API 23。
  • 已將 Kotlin 版本升級至 1.9.0 版。
  • 新增了 Room 的依附元件。
  • 使用 Driver SDK 的應用程式現在必須具有 API 31 以上級別的 targetSdkVersion
  • 使用 Driver SDK 的應用程式現在必須啟用 Java 8 程式庫支援功能。如需更新操作說明,請前往 https://developer.android.com/studio/write/java8-support。
  • 使用 Proguard 或 Dexguard 的應用程式必須遷移至 R8。詳情請參閱 https://developer.android.com/build/shrink-code。
  • 使用 Driver SDK 的應用程式必須啟用脫糖功能。如需操作說明,請前往 https://developer.android.com/studio/write/java8-support#library-desugaring。

修正錯誤

  • 修正 enableLocationTracking 同步的問題。
  • 推出新的 DriverStatusListener 介面,用於回報例外狀況狀態更新的原因。
  • 修正驅動程式剩餘靜止不動 (自 4.99.0 版起) 的問題。

4.99.0 版 (2023 年 8 月 9 日)

  • 支援多種版本的 NavSDK 依附元件。** 支援 4.5.0 以上版本 (不含) 5.0.0 版。
  • 避免在車輛靜止時單獨減少預計到達時間。這項變更會以實驗的形式逐步推出,因此並非所有應用程式都會同時看到這項變更。

4.5.0 版 (2023 年 5 月 12 日)

  • 將 Navigation SDK 依附元件更新至 4.5 版。請注意,Navigation SDK 的群組和構件 ID 已變更。

4.4.3 版 (2023 年 3 月 20 日)

依附元件變更

  • 將 Navigation SDK 依附元件升級至 4.4.1 版。

4.4.2 版 (2023 年 2 月 15 日)

修正錯誤

  • 縮短 SDK 遇到暫時性連線問題時的網路復原時間。這項功能目前是以實驗的形式推出。

  • 捨棄僅包含「原始」位置的 UpdateVehicle 項要求。

  • 修正「Route Overview」ALPHA API 中的競爭狀況。

4.4.1 版 (2022 年 11 月 18 日)

修正錯誤

  • 修正流量上傳邏輯的錯誤。

其他異動

  • 改善要求標頭和狀態碼報告的內部內部效能。

4.4.0 版 (2022 年 9 月 21 日)

修正錯誤

  • 修正在 API 執行個體未清除的情況下,無法移除「透過 Google 地圖開車」通知的錯誤。

依附元件變更

  • 將 Navigation SDK 依附元件升級至 4.2.2 版。

4.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 支援凍結通知,而 Android 23、24 和 25 支援的版本則自 2021 年 10 月 18 日起停止運作。

4.2.0 版 (2022 年 6 月 8 日)

依附元件變更

  • 將 Nav SDK 依附元件升級至 4.1.3 版。
  • 將支援的最低 Android API 級別降級至 21。

4.1.0 版 (2022 年 4 月 28 日)

API 更新

  • Task 物件的 parentId 屬性已重新命名為 trackingId。舊資源目前仍然存在,但已淘汰。

  • 將部分傳回類型從 Future 變更為更具體的 ListenableFuture,以及從 List 變更為更明確的 ImmutableList

4.0.0 版 (2021 年 11 月 29 日)

此版本支援的最低 Android API 級別為 23。

API 更新

在這個版本中,我們更新了適用於 Android 的 Driver SDK,且包含以下變更。

VehicleStops API 變更

VehicleStop 物件現在會參照 TaskInfo 物件清單,而非 Task 物件清單。如果您需要工作狀態,建議您在應用程式程式碼中追蹤。

當機監控

新增當機監控和回報功能,以提高 SDK 穩定性。這項功能預設為啟用,但只要在初始化 SDK 之前呼叫 setAbnormalTerminationReportingEnabled() 並傳遞 false 的值,即可停用此功能。

非同步 getRemainingVehicleStops

驗證

已從 AuthTokenContext 介面中移除不必要的屬性。淘汰了 ServiceType。您現在只需取得隨附車輛 ID 和工作 ID 的聲明,不必依賴 ServiceType

2021 年 10 月 18 日 - 凍結對 API 級別 23、24 和 25 的支援

閱讀 10 月 18 日的公告

為因應內部依附元件的異動,新版 Android 適用的 Navigation 和 Driver SDK 將不再支援 Android API 級別 23、24 和 25 (Android 6、7.0 和 7.1)。

自 2022 年第 3 季起,適用於 Android 版本的 Navigation 和驅動程式 SDK 僅支援搭載 Android API 級別 26 以上的裝置。

使用 4.x 以下版本的 Android 導覽和驅動程式 SDK 建立的應用程式版本,仍可在搭載 Android API 級別 25 以下版本的裝置上運作。

3.0.4 版 (2021 年 7 月 28 日)

功能

在這個版本中, Driver SDK 會與 Navigation SDK 正式區隔開來。詳情請參閱遷移指南

API 更新

新增了下列方法:

DeliveryDriverApi.getDriverSdkVersion()

修正穩定性及錯誤

回報 PERMISSION_DENIED 錯誤,而不是將這類錯誤歸類為連線錯誤。

淘汰公告 (2021 年 6 月 21 日)

本公告說明自上述日期起,Android 的驅動程式 SDK 和 Navigation SDK 已淘汰。本次公告也以必要服務公告 (MSA) 的形式傳送給受影響的客戶。

為簡化客戶整合流程,並加速提供實用功能,我們將 Android 版 Navigation SDK 和適用於 Android 的 Navigation SDK 分成兩種不同的二進位檔:

  • Navigation SDK for Android,可為駕駛提供導航/轉送功能。
  • Android 適用的驅動程式 SDK,可讓您運用 Fleet Engine 有狀態的網路服務,進行行程或工作進度及分配。

請注意,Android 的駕駛人 SDK 在 Navigation SDK for Android 中具有必要的依附元件,才能使用核心轉送功能。

異動內容

第 3 版的主要變更如下:

  • 兩個二進位檔而非一個二進位檔。
  • 針對 Android 類別的 Driver SDK 提供更明確的套件定義。
  • Navigation SDK for Android 會在套件中加入 Maps SDK for Android (自 Navigation SDK for Android 第 2 版起)。
    • 這樣一來,地圖和導覽功能就能在同一張地圖上同時存在 (例如在 NavigationView 上繪製折線),且由於只使用單一地圖 (而非兩個),因此可減少記憶體用量。
    • Android 3.0 版的 Navigation SDK 缺少與 Android 版 Navigation SDK 的完整功能一致,但 3.2 版會在這裡解決大多數問題。詳情請參閱「我可以做些什麼?何時可以應對?」。
  • 記錄,方便我們針對您可能遇到的問題進行偵錯。

以下方法已在第 3 版中移除,但先前標示為已淘汰,且當中已有替代解決方案:

  • 下列 Nav/Driver SDK 方法已在 2020 年 8 月 10 日淘汰,並在 3.0 版中移除:
    • Waypoint#fromLatLng(*)
    • Waypoint#fromPlaceId(*)
    • Navigator#startGuidance(resumeIntent)
    • NavigationApi#initForegroundServiceManager(*)
  • 為求完整及清楚,我們從 v1 到 v2 的轉換中移除了多項方法。這些措施大多合併了 Navigation SDK for Android 和 Maps SDK for Android 之間的重複類別。如要進一步瞭解這些變更,請參閱遷移指南

淘汰 Android 適用的驅動程式 SDK 和 Navigation SDK for Android v1.x

Nav/Driver SDK 第 1 版於 2018 年推出,隨著我們的 v3 版本即將發布,現在應淘汰第 1 版,以免無法支援許多主要版本。

因為不需要支援這個額外版本,我們就能更有效地支援最新的主要版本,並建構更多客戶重視的功能。

因此,Nav/Driver SDK v1.x 現已淘汰,自 2022 年 6 月 21 日起將不再維護。

請花點時間瞭解 SDK 版本淘汰作業的運作方式

讀取已撤銷的公告

即將推出的 Android 版 Navigation SDK 和 Android 驅動程式 SDK 將於 4.0 版中支援最低 [Android 6.0 (API 級別 23)](https://developer.android.com/studio/releases/platforms#6.0){: .external}。目前支援的最低版本為 Android 5.0 (API 級別 21)。我們預計於 2021 年第 4 季推出 4.0 版。因此:

  • 以 4.x 以下版本建立的應用程式版本仍可在 Android 21 和 22 裝置上運作。已安裝 Google SDK 的驅動程式應用程式仍可在搭載 Android 21 以上版本的裝置上運作。這與之前的做法相同。
  • 使用 Google Driver SDK for Android 以及適用於 Android v4.x 的 Android v4.x 裝置所建構的應用程式版本,以及適用於 Android 2021 年第 4 季的 Navigation SDK 版本 (暫定為 2021 年第 4 季,隨時可能變更),且之後無法在搭載 Android 21 和 22 (API 級別 23) 的裝置上,執行 v4.x 版本的應用程式版本,因此只會收到採用新版 SDK 第 2 版 (API 級別 23) 以上

下表列出要升級到 Android v3 的 Navigation SDK 版本和適用於 Android v3 的驅動程式 SDK 版本,以及這些版本何時可供使用。

你使用哪些駕駛服務平台功能? 你是否使用這些功能 然後您應升級的第一種版本為... 預計供應情形
(隨時可能變更)
遷移連結
僅限 Navigation
(NavSDK 方法)
NavSDK 3.0.1 版 現在 使用指南
NavSDK 3.5 版 (預測) 2021 年 9 月
導航和 Fleet Engine 追蹤 (NavSDK 和 DriverSDK 方法) Nav SDK 3.0 版和驅動程式 SDK 3.0 版 發布版本提供驅動程式 3.0 版遷移指南
NavSDK 3.x 版和 DriverSDK 3.0 版

如要繼續使用已移除的方法,繼續使用 1.x 版,但無須預期支援或維護 (請參閱下一節)。

建議您改用 3.x 版。因此:

* v1.x 的最後一個版本將於 2021 年第 4 季推出 (因此 v1 之後會「功能凍結」)。

* 這個上一個版本之後最多可以修補 6 個月,直到 2022 年 6 月 21 日為止。這段期間過後,我們無法回應 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 / 驅動程式功能)
沒有選項 NavSDK 3.x +
DriverSDK 3.x
上述指南以及發布的驅動程式 3.0 版遷移指南。

建議您先向搭載 Android 21 和 22 的裝置通知駕駛人,請他們升級至較新版本的 Android (最低 Android 6.0),然後再將 Android 適用的驅動程式 SDK 和 Android 版 Navigation SDK 整合到驅動程式應用程式。

1.15.3 版 (2020 年 10 月 9 日)

API 更新

  • 驅動程式 SDK 現在會訂閱 Navigation SDK 以取得流量更新,這個 SDK 會傳送至 Fleet Engine API。

修正穩定性及錯誤

  • 已修正 gRPC 執行階段異常終止的問題。

v1.15.2

功能

新增停止持續通知的功能。如果在 Fleet Engine 執行個體中停止位置回報功能,導航會在 Navigator 中停止,系統會取消註冊所有導覽事件監聽器,並暫停 NavigationFragmentNavigationView

修正穩定性及錯誤

  • 修正了在清除 Fleet Engine 執行個體時擲回例外狀況的錯誤。

1.15.1 版 (2020 年 5 月 12 日)

功能

初步分析 1.15.0 資料後,結果顯示穩定的位置回報功能有顯著改善 (減少「停滯」位置)。這項修補程式修正作業可讓我們繼續改善位置回報功能。ANR 問題與這些改善項目無關。

修正穩定性及錯誤

  • 修正錯誤:有時會導致路線起點在路線起點顯示直線,現在消費者應用程式已經修正。
  • 修正可能在 SDK 回報位置時導致 ANR 的錯誤。這起因於 onArrival() 項容易鎖定爭用情況。我們在某些情況下能夠穩定重現 ANR,驗證修正項目是否解決了問題。經過修改,用來產生 ANR 的測試應用程式在修正後執行了八小時,但未發生 ANR。

1.15.0 版 (2019 年 3 月 23 日)

功能

  • 在開始、偏離路線和抵達事件時提供導航指引狀態,藉此改善車輛位置追蹤功能。
  • 新增可繼續取得道路導覽位置的功能,不受導覽狀態影響。
  • 新增道路封閉位置相關資訊,例如準確性。

穩定性和錯誤修正

  • 已將 navsdk 的 minSdkVersion 提高為 19。
  • 修正錯誤:伺服器端反向地理編碼失敗時,系統無法遵循 lat/lng Waypoint 名稱。

1.14.2 版 (2019 年 2 月 2 日)

功能

  • 可防止 DriverSDK 傳送 0,0 個位置至 Fleet Engine (更妥善地分享及分配位置輸入)。
  • 新增記錄,用於改善卡住的位置問題,並減少分享旅程時的備用。
  • 除非間隔改變,否則忽略對 setLocationReportingInterval() 的重複呼叫。
  • 已更新 setReportingInterval() 方法的 javadocs,目標為避免以相對的間隔,以高頻率重複呼叫這個方法。
  • API 29 位置的穩定性已提高。

v1.13.0

修正穩定性及錯誤

  • 新增 okhttp 的依附元件,用戶端必須將其新增至 Gradle 建構作業。

1.11.7 版 (2019 年 10 月 18 日)

修正穩定性及錯誤

  • 現在,位置更新作業會在指定目的地的 onArrival() 觸發後繼續。
  • 預設通知 (自由導覽模式中的常數字串) 與導覽通知設定的色彩配置相符。詳情請參閱「共用永久通知」。
  • 解決了位置更新延遲事件可能導致系統誤報位置更新的問題,導致路線起點出現直線失誤,

1.11.6 版 (2019 年 10 月 4 日)

API 更新

  • 推出了一系列變更,確保驅動程式 SDK 在網路故障後快速恢復位置更新。恢復網路連線後,位置更新作業會在下次排定的位置更新時再次啟動。

修正穩定性及錯誤

  • setVehicleState() 現在會立即傳回。現在系統會在背景執行緒更新 FleetEngine。解決應用程式無回應 (ANR) 問題。
  • 修正使用舊版 Consumer SDK 導致歷程共用路徑顯示為直線的問題。確保驅動程式 SDK 不會在路線中加入任何一次性路線控點。