這份變更記錄詳細說明瞭 Android 版 Navigation SDK 各版本的新功能和錯誤修正。
2021 年 10 月 18 日 - 凍結對 API 級別 23、24 和 25 的支援
為因應內部依附元件的異動,新版 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 以下版本的裝置上運作。
淘汰公告 (2021 年 6 月 21 日)
本公告說明自上述日期起,適用於 Android 和 Android 版的 Navigation SDK 已淘汰。本公告也是以必要服務公告 (MSA) 的形式傳送給受影響的客戶。
淘汰 Android 適用的 Navigation SDK 和 Driver SDK for Android v1.x
Nav/Driver SDK 第 1 版於 2018 年推出,隨著我們的 v3 版本即將發布,現在應淘汰第 1 版,以免無法支援許多主要版本。
因為不需要支援這個額外版本,我們就能更有效地支援最新的主要版本,並建構更多客戶重視的功能。
因此,Nav/Driver SDK v1.x 現已淘汰,自 2022 年 6 月 21 日起將不再維護。
請花點時間瞭解 SDK 版本淘汰作業的運作方式。
如需其他 Android 淘汰資訊,請參閱適用於 Android 的 Navigation SDK v2/v3 版本資訊。
1.51.1 版 (2022 年 4 月 1 日)
穩定性及錯誤修正
修正《服務條款》對話方塊中的無效超連結。
部分用戶端在 Android 活動刪除時收到《服務條款》對話方塊錯誤。現在,用戶端在活動刪除時,不會發生這個對話方塊錯誤。
版本 1.51 (2022 年 1 月 18 日)
API 相關異動
將 Navigation SDK 的最低 Android API 級別提升至 23,並將目標 API 級別提升至 30。這個目標版本符合 Google Play 規定。
呈現沿著顏色「灰色」追蹤導覽 VV 的折線,表示使用者已經行駛過路線中的該路段。
版本 1.50 (2021 年 11 月 3 日)
- 版本 1.22 的 Jetified 變化版本。除了使用 AndroidX 程式庫外,沒有任何變動。
版本 1.22 (2021 年 10 月 7 日)
穩定性及錯誤修正
- 修正了相機錯誤:在呼叫 stopNavigation 後,相機會停止跟隨使用者的位置。
- 修正向應用程式返回後顯示「最近使用」按鈕的相機錯誤。
- 修正潛在的記憶體流失問題。
- 修正產生 ANR 問題的錯誤。
- 防止「服務條款」對話方塊造成當機。
淘汰項目
- 淘汰含路徑符記的 #setDestinations,改用使用 CustomRoutesOptions 的新 API。
新功能
- 新增輔助取貨功能,在導覽頁尾 UI 中加入新的圖示。
- 為自訂路徑新增雙向支援。
版本 1.21.1 (2021 年 7 月 13 日)
穩定性及錯誤修正
- 修正與實作程式碼中過於嚴格的先決條件檢查相關的
IllegalStateException
。 - 修正
NavigationView.onDestroy()
中的NullPointerException
。
版本 1.21 (2021 年 6 月 23 日)
API 相關異動
- 無頭導覽現在支援速度事件監聽器。這樣就能在不先從 Navigation SDK 轉譯
View
或Fragment
的情況下監控速度。
穩定性及錯誤修正
- 針對首次安裝應用程式時,在夜間模式中改善地圖圖塊載入的穩定性。
淘汰項目
下列方法已淘汰,並改用 Navigator.setSpeedAlertOptions()
:
NavigationView.setSpeedAlertOptions()
SupportNavigationFragment.setSpeedAlertOptions()
NavigationFragment.setSpeedAlertOptions()
版本 1.20.1 (2021 年 7 月 14 日)
穩定性及錯誤修正
- 修正與實作程式碼中過於嚴格的先決條件檢查相關的
IllegalStateException
。 - 修正
NavigationView.onDestroy()
中的NullPointerException
。
1.20 版 (2021 年 3 月 9 日)
- 已新增必要的依附元件。請將下列依附元件新增至 Gradle 依附元件清單,以免執行階段停止運作:
api 'joda-time:joda-time:2.9.9'
。
穩定性及錯誤修正
- 修正了使用 Joda-Time 的 Navigation SDK 使用者,與封裝至程式庫的 jodatime 版本發生衝突的問題。
- 修正 Navigation SDK 在啟動導覽工作階段時,意外隱藏消費者應用程式通知 (而非其擁有者) 的問題。
版本 1.19 (2020 年 12 月 15 日)
API 相關異動
DriverSDK 現在一律會將流量資料傳送至 FleetEngine。此行為過去是由
UpdateVehicleResponse
標記決定;現在系統會忽略該標記。FleetEngine 建構函式已變更;為
AuthTokenFactory
和StatusListener
新增了包裝函式。在 Navigator API 中新增兩種新方法,以允許設定及移除新導覽工作階段的事件監聽器。
在 Navigator API 中新增方法,以取得進行中導航工作階段的交易 ID。當新的導覽工作階段開始,以及進行中的導覽工作階段中的交易 ID 變更時 (例如更新歷程區隔的清單時),應使用這個 API。
版本 1.18 (2020 年 10 月 9 日)
新增了
setAbnormalTerminationReportingEnabled(boolean)
方法。這個方法可讓使用者停用當機偵測監控功能。修正無法從
onLocationChange
事件取消註冊LocationListeners
的錯誤。修正
io.grpc.util.SecretRoundRobinLoadBalancerProvider$Provider
無法執行個體化的 gRPC 當機問題。
1.17 版 (2020 年 8 月 27 日)
您現在可以將路徑權杖傳送至 NavSDK,以擷取該路徑符記代表的路線。當您呼叫 Routes Preferred API 時,路徑權杖就會與路徑回應建立關聯。新的 API 為
Navigator#setDestination(List<Waypoint> destinations, String routeToken)
。新增一些必要的依附元件。請將下列依附元件新增至 Gradle 依附元件清單,以免執行階段停止運作:
api 'com.google.android.datatransport:transport-api:2.2.0' api 'com.google.android.datatransport:transport-backend-cct:2.2.0' api 'com.google.android.datatransport:transport-runtime:2.2.0'
1.16 版 (2020 年 8 月 10 日)
新功能
新增
Waypoint.Builder.setVehicleStopover
API,在路線控點位於無法停止的地點時,啟用/停用路線中停靠點的自動重新定位功能。已將參數
SpeedAlertSeverity
新增至SpeedAlert
回呼。請將這個參數與SpeedingListener
搭配使用。
穩定性及錯誤修正
淘汰了
NavigationApi.cleanUp
方法,因為NullPointerExceptions
等不必要的副作用導致當機。淘汰
Waypoint.fromLatLng()
和Waypoint.fromPlaceId()
,改用Waypoint.builder()
。淘汰
NavigationTransactionRecorder
中的AddressListener
類別,因為這個類別未使用。
1.15 版 (2020 年 3 月 23 日)
新功能
可自訂的 Navigation 標題字型/顏色/圖示。
支援在導覽標頭 UI 中自訂建議車道的顏色。
更新多個 API,以便按照新增/移除模式設定回呼/監聽器。先前的
set*
方法已標示為已淘汰,並將在日後推出的版本中移除。以下列出已淘汰的方法:SupportNavigationFragment.setOnNightModeChangedListener
SupportNavigationFragment.setOnRecenterButtonClickedListener
NavigationFragment.setOnNightModeChangedListener
NavigationFragment.setOnRecenterButtonClickedListener
NavigationView.setOnNightModeChangedListener
NavigationView.setOnRecenterButtonClickedListener
Navigator.setArrivalListener
Navigator.setRouteChangedListener
Navigator.setRemainingTimeOrDistanceChangedListener
穩定性及錯誤修正
將 navsdk 的 minSdkVersion 提升至 19。
修正錯誤:伺服器端反向地理編碼失敗時,無法正確使用 lat/lng Waypoint 名稱。
1.14 版 (2020 年 2 月 2 日)
新功能
(Beta 版) 在路線要求中設定路線的目標距離,業者可以影響駕駛人後方的路線選項。這項功能仍處於 Beta 版測試階段,如有興趣進一步瞭解,請與您的客戶工程代表聯絡。
編譯更新至 API 29 的 SDK。
穩定性及錯誤修正
修正《服務條款》對話方塊中的錯誤,修正使用者必須強制要求「接受」提示。
修改 NDK 元件中的例外狀況處理行為,避免異常終止。
版本 1.13 (2019 年 11 月 8 日)
新功能
駕駛人現在可在超過速限時收到速度快訊。可以自訂速度快訊圖示的外觀。如《Google 地圖企業版服務條款》所述,Google 對任何功能的品質 (包括速度快訊功能的準確度) 不提供任何擔保。速度快訊僅供參考。
新增路線選項 (
RoutingOptions
),讓您在路徑預覽期間顯示替代路徑。新增相機視角,以由上往下的視角顯示路線,並將路線導向,讓車輛始終朝向前方。您可以呼叫
NavFragment.getCamera().followMyLocation(Camera.Perspective.TOP_DOWN_HEADING_UP)
來設定這個視角。新增了 API (
RoadSnappedLocationProvider
中的resetFreeNav()
),在導航未啟用的情況下,每當您停止透過已註冊的事件監聽器接收位置更新通知時,您可以呼叫以重設 Free Nav 服務。
穩定性及錯誤修正
- 更新《服務條款》對話方塊的內容。
版本 1.12 (2019 年 10 月 7 日)
新功能
您現在可以在導航時隱藏並顯示一或多條替代路線。
現在您可以在要求 (縮短/最快路徑) 中指定轉送策略。
新增完整自訂「條款及細則」對話方塊 (文字大小、顏色等) 的功能。
穩定性及錯誤修正
已修正
com.google.http-client
中的重複類別問題。將試用版應用程式更新為使用新版 Places SDK,並 Jetified 試用版應用程式。
在行程總覽中,改善相機影格速率。
版本 1.11 (2019 年 6 月 28 日)
提升效能
- 已改善
setDestination
的網路延遲時間。
修正錯誤
修正在導覽多個路線控點時,
onArrival
回呼不一致的問題。修正了以下問題:針對不在目前位置附近的路線控點,抵達時間可能會提早觸發。
java.lang.IllegalStateException
- 對
NavigationView.onDestroy
的呼叫無法追蹤對NavigationView.onCreate
的呼叫。
- 對
其他
開放原始碼軟體授權更新。
移除路線上的路線預計到達時間摘要,移除多餘資料並簡化 UI。
版本 1.10.2 (2019 年 4 月 11 日)
穩定性及錯誤修正
- 修正在 Fragment 生命週期轉換期間擲回 IllegalStateException 的錯誤:onCreate() 到 onDestroy()。
版本 1.10 (2019 年 4 月 11 日)
功能
可自訂的條款及細則對話方塊標題:您可以使用
showTermsAndConditionsDialog
自訂「條款及細則」對話方塊的標題文字。路線控點標記已移除路線控點標記中的英數字元。
1.9 版 (2019 年 2 月 11 日)
功能
次要標頭:您可以使用自訂控制項功能,在導覽標頭下方新增自訂內容。請參閱
setCustomControl
方法的SECONDARY_HEADER
位置。新增依附元件:新增 Cronet 和 Glide 的依附元件。詳情請參閱「專案設定」主題中的「更新 Gradle 建構指令碼」一節。
已知問題
- 如果試用版應用程式當機並出現 java.lang.ClassNotFoundException: Didn't find class "com.example.navigationapidemo.SplashScreenActivity",您必須將 Gradle Build 工具的依附元件更新為 3.3.1 以上版本。在
build.gradle
檔案中,驗證buildscript
是否與以下範例相符:
buildscript {
repositories {
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.1'
}
}
版本 1.8.1 (2019 年 1 月 22 日)
穩定性和錯誤修正
- 修正了計程車模式在特定相機模式下當機的問題。
- 提升多項穩定性。
版本 1.8 (2018 年 12 月 21 日)
功能
計程車模式 - Beta 版:應用程式可利用計程車專用車道和街道,為被認定為計程車的車輛提供路線和預估抵達時間 (ETA)。
目前支援的地理區域如下:
- 巴西:裡約熱內盧
- 英格蘭:伯明罕、科芬特里、倫敦地鐵區、曼徹斯特
- 以色列:特拉維夫
- 愛爾蘭:都柏林
- 俄羅斯:莫斯科
- 蘇格蘭:格拉斯哥、愛丁堡
- 西班牙:馬德里、巴塞隆納
穩定性和錯誤修正
- 修正記憶體流失問題
- 提高效能
1.7.3 版 (2018 年 9 月 18 日)
修正錯誤
NavigationView
現在可以從onStart
直接轉換至onStop
,這樣不會再產生IllegalStateException
。
版本 1.7.2 (2018 年 8 月 16 日)
功能
- 您現在可以在導航期間顯示路線清單,以顯示接下來的乘車路線。路線清單是透過
DirectionsListView
提供。 - 您現在可以透過
getSeverity
方法使用TimeAndDistance
類別來擷取流量狀態。 - 現已支援車牌限制。
修正錯誤
- 「服務條款」對話方塊 (以
IllegalStateException
形式顯示) 偶爾當機的問題均已修正。 - 已修正「嘗試寫入欄位 ... 對空值物件參照」這類訊息的 NullPointerException
- R.txt 中的資源 ID (先前全部為 0x1) 現已採用正確的值。
版本 1.6.2 (2018 年 7 月 16 日)
修正錯誤
- 已修正
AccessibilityStateUtils.getAccessibilityState()
中的 NullPointerException
1.6.0 版 (2018 年 5 月 10 日)
修正錯誤
- 修正在旅程路段和替代路線上,會導致預計到達時間呼叫不正確的錯誤。
- 修正了某個位置的緯度和/或經度值為
null
時發生的 NullPointerException - 修正了在離線狀態下接受 ToS 對話方塊時,導致地圖無法載入的錯誤。
- 推出了 Android OS 7.0 LocationManager 錯誤的解決方法,該錯誤會導致 Navigation SDK 中的 NPE
版本 1.5.0 (2018 年 3 月 26 日)
功能
- 夜間模式:現在可以將導航設為使用夜間模式主題。您可以透過程式輔助方式啟用或停用夜間模式,或讓 Navigation SDK 根據時段自動切換主題。
- 機車交通模式 (Beta 版):您現在可以將交通方式設為
TWO-WHEELER
,取得機車路線和機車路線。這項功能目前僅在印度和印尼推出。 - 速限:您現在可以透過程式輔助方式顯示或隱藏速限圖示 (這個圖示只會顯示在提供可靠速限資料的位置)。
- 自訂地圖疊加層控制項:您可以在導航時,使用自訂地圖疊加層控制項,動態調整 UI 元素的位置。
getNavigator()
呼叫現在接受應用程式結構定義,以便從服務呼叫。
修正錯誤
- 已解決《服務條款》對話方塊中的幾個文字版面配置問題,以改善由右至左語言顯示的方式。
版本 1.3.4 (2018 年 1 月 24 日)
- 修正導致
clearDestinations
有時無法清除先前路徑的錯誤
1.3.3 版 (2017 年 12 月 18 日)
- 將
CameraArbitrator
類別設為執行緒安全,因為此類別會用於 UI 和轉譯執行緒。 - 如果
CompassButtonController
的事件在呼叫onDestroy()
後抵達,請勿擲回 NPE; - 針對 NavigationApi 的公開方法新增空值檢查。SDK 將擲回最靠近開發人員程式碼的 NPE。
1.3.2 版 (2017 年 11 月 30 日)
- 修正網路錯誤發生時的當機問題。
版本 1.3.1 (2017 年 11 月 14 日)
- 修正 Android 8.0 Oreo (API 級別 26) 以上版本上的彈出式即時路線導航通知。
- 修正了在建立
NavigationView
或NavigationFragment
前要求路線未顯示的問題。
1.3 版 (2017 年 11 月 7 日)
- 已將
onTrimMemory()
方法新增至NavigationView
所含活動應呼叫這個方法。 - 如果在指定的逾時時間內找不到位置修正內容,
Navigator.setDestinations()
現在會傳回LOCATION_UNKNOWN
狀態。您可以使用RoutingOptions.locationTimeoutMs()
設定逾時。 - 現在可以使用
MarkerOptions.anchor()
設定自訂標記圖片的錨點。 NavigationMap
現在會顯示Projection
物件,可用於取得地圖可見的經緯度邊界,將邊框間距納入考量。- 即時路線導航通知現在可以使用
Navigator.setHeadsUpNotificationEnabled()
停用。 - 「重新置中」按鈕現在提供可點選的事件監聽器。您可以在
NavigationView
、NavigationFragment
和SupportNavigationFragment
上使用setOnRecenterButtonClickedListener()
方法進行設定。
版本 1.2.6 (2017 年 10 月 25 日)
- 修正了 OS 自動重新建立導航服務時可能發生的 NullPointerException。
- 如果特定生命週期方法的順序不正確 (例如連續呼叫
onStart()
或onResume()
),NavigationView
不會再擲回例外狀況。但系統會記錄警告訊息。
1.2.5 版 (2017 年 10 月 19 日)
- 新增更完善的圖塊快取管理功能,妥善管理記憶體用量。
- 修正了在建立
NavigationView
或NavigationFragment
之前呼叫Navigator.setDestinations()
時可能發生的當機問題。
版本 1.2.4 (2017 年 10 月 11 日)
- 修正在沒有 Navigator 的情況下建立多個 NavigationView 時,可能會發生的記憶體流失問題。
1.2.3 版 (2017 年 10 月 4 日)
- 修正生命週期標記,有時會導致我的位置標記消失。
- 修正了另一個例項,下車和下車事件可能會遺失。
1.2.2 版 (2017 年 9 月 27 日)
- 改善延遲時間,加快 API 初始化速度並呼叫
Navigator.setDestinations
。
1.2.1 版 (2017 年 9 月 20 日)
- 已將
android:largeHeap="true"
新增至程式庫資訊清單。這樣可降低 OutOfMemoryErrors 的頻率,而且是提供可靠的導覽體驗的必要項目。 - 改善記錄上車和下車事件的可靠性。
1.2 版 (2017 年 9 月 1 日)
- 如果您不確定裝置螢幕方向,地圖現在會以北方在上的總覽模式顯示,並顯示圓形的我的位置標記。這在流程開始時特別實用,可讓使用者藉由表示裝置目前的面貌尚未充分掌握資訊,幫助他們瞭解裝置方向。
- 交通事件資訊卡採用全新設計,並顯示在地圖底部,而非先前的頂端位置。
- 更新位置監聽功能,確保這項功能可在 Android 8.0 Oreo (API 級別 26) 中正常運作。
- 修正目的地標記在導覽模式和非導覽模式中會以不同方式轉譯的錯誤。
1.1.2 版 (2017 年 9 月 16 日)
- 改善記錄上車和下車事件的可靠性。
版本 1.1.1 (2017 年 8 月 24 日)
- 修正在沒有網路連線的情況下重新轉送時發生的 IllegalStateException。
- 修正在呼叫
Navigator.setDestinations()
前後,地圖樣式設定會變得不同的錯誤。
1.1 版 (2017 年 7 月 31 日)
- 修正了應用程式傳送至背景時,
RoadSnappedLocationListener
有時無法正常運作的錯誤。 - 修正了在開始/停止導航時相機錯誤。
- 修正
Simulator.unsetUserLocation()
中未正確重設位置的錯誤。
1.0 版 (2017 年 7 月 5 日)
- 啟動 Navigation SDK。