本節包含適用於 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
物件清單。如果您需要工作狀態,建議您在應用程式程式碼中追蹤。
已新增課程:
TaskInfo
將
VehicleStop
的getTasks
函式取代為getTaskInfoList
函式。將
VehicleStop.Builder
的setTasks
函式取代為setTaskInfoList
函式。
當機監控
新增當機監控和回報功能,以提高 SDK 穩定性。這項功能預設為啟用,但只要在初始化 SDK 之前呼叫 setAbnormalTerminationReportingEnabled()
並傳遞 false
的值,即可停用此功能。
- 已將
setAbnormalTerminationReportingEnabled
函式新增至DriverApi
。
非同步 getRemainingVehicleStops
- 已變更
DeliveryVehicleReporter
的getRemainingVehicleStops
函式,以便傳回 Future<List<VehicleStop>>,而非 List<VehicleStop>。
驗證
已從 AuthTokenContext
介面中移除不必要的屬性。淘汰了 ServiceType
。您現在只需取得隨附車輛 ID 和工作 ID 的聲明,不必依賴 ServiceType
。
將
ServiceType
從AuthTokenContext
中移除。將
getServiceType()
從AuthTokenContext
中移除。將
setServiceType
從AuthTokenContext.Builder
中移除。
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 的 Nav/Driver SDK 將變為適用於 Android v3.x 和 Android v3.x for Android 的驅動程式 SDK (分割二進位檔)
為簡化客戶整合流程,並加速提供實用功能,我們將 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 版本淘汰作業的運作方式。
停止支援導航和驅動程式 SDK Android 21 和 22
讀取已撤銷的公告
即將推出的 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
中停止,系統會取消註冊所有導覽事件監聽器,並暫停 NavigationFragment
或 NavigationView
。
修正穩定性及錯誤
- 修正了在清除 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 不會在路線中加入任何一次性路線控點。