版本資訊

本變更記錄將詳細說明 Navigation SDK for Android 各版本的新功能和錯誤修正。

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

為因應內部依附元件的變更,從 2022 年第三季開始,新版 Navigation 和驅動程式 SDK 將停止支援 Android API 級別 23、24 和 25 (Android 6、7.0 和 7.1)。

在 2022 年第三季開始推出的 Android 版 Navigation 和驅動程式 SDK,僅支援搭載 Android API 級別 26 以上的裝置。

使用 Android 版 Navigation 和驅動程式 SDK v4.x 以下版本建構的應用程式版本,可繼續在搭載 Android API 級別 25 以下的裝置上運作。

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

本公告說明自上述日期起,淘汰 Android 適用的 Navigation SDK 和 Android 驅動程式 SDK。我們也將這項公告以重大服務公告 (MSA) 的形式發送給受影響的客戶。

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

Nav/Driver SDK v1 已於 2018 年發布,而隨著我們的第 3 版即將發布,現在可以淘汰第 1 版,以免不支援許多主要版本。

因為不必支援這類額外版本而省下的時間,可讓我們更有效地支援最新主要版本,並開發更多客戶重視的功能。

因此,Nav/Driver SDK v1.x 現已淘汰,2022 年 6 月 21 日後不會再進行維護。

請花點時間瞭解 SDK 版本中的淘汰項目如何運作

如需其他 Android 淘汰資訊,請參閱 Android 版 Navigation SDK 第 2 版/第 3 版版本資訊

版本 1.51.1 (2022 年 4 月 1 日)

穩定性和錯誤修正

  • 修正《服務條款》對話方塊中的無效超連結。

  • 在 Android 活動遭到刪除時,部分用戶端收到服務條款對話方塊錯誤。刪除活動時,用戶端不會再發生這個對話方塊錯誤。

版本 1.51 (2022 年 1 月 18 日)

API 相關異動

  • 將 Navigation SDK 的最低 Android API 級別提高至 23,並將目標 API 級別提高至 30。這個目標版本符合 Google Play 規定

  • 呈現追蹤 V 形路徑的折線 (顏色為「灰色」),表示使用者已行經路線中的該段。

版本 1.50 (2021 年 11 月 3 日)

  • 版本 1.22 的 Jetified 變化版本。除了使用 AndroidX 程式庫外,沒有任何變更。

1.22 版 (2021 年 10 月 7 日)

穩定性和錯誤修正

  • 修正相機在呼叫 stopNavigation 後,相機停止追蹤使用者位置的相機錯誤。
  • 修正對應用程式進行背壓後顯示最近按下按鈕的相機錯誤。
  • 修正潛在的記憶體流失問題。
  • 修正會產生 ANR 問題的錯誤。
  • 防止「服務條款」對話方塊造成當機。

淘汰項目

  • 淘汰使用路徑符記的 #setDestinations,改用使用 CustomRoutesOptions 的新 API。

新功能

  • 新增輔助取貨功能,在導覽頁尾使用者介面新增圖示。
  • 為自訂路徑新增 2-Wheeler 支援。

版本 1.21.1 (2021 年 7 月 13 日)

穩定性和錯誤修正

  • 修正與實作程式碼中規定過於嚴格的先決條件相關聯的 IllegalStateException
  • 修正 NavigationView.onDestroy() 中的 NullPointerException

1.21 版 (2021 年 6 月 23 日)

API 相關異動

  • 無頭導覽模式現在支援加速事件監聽器。因此,在不先從 Navigation SDK 轉譯 ViewFragment 的情況下,就可以監控速度。

穩定性和錯誤修正

  • 改善應用程式首次安裝時,在夜間模式下載入地圖圖塊的穩定性。

淘汰項目

下列方法已淘汰,並改用 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 建構函式已變更;新增了 AuthTokenFactoryStatusListener 的包裝函式。

  • 已在 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 日)

新功能

穩定性和錯誤修正

  • 由於 NullPointerExceptions 等不必要的副作用,因此已淘汰 NavigationApi.cleanUp 方法,導致當機。

  • 淘汰 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 路線點名稱的錯誤。

1.14 版 (2020 年 2 月 2 日)

新功能

  • (Beta 版) 營運人員可在路線規劃要求中設定路線的目標距離,藉此影響駕駛人要跟隨的路線選項。此功能仍處於 Beta 版階段,有興趣的話,請聯絡您的客戶工程代表以瞭解詳情。

  • 將 SDK 編譯成 API 29。

穩定性和錯誤修正

  • 修正「服務條款」對話方塊中的錯誤,該錯誤會使駕駛人必須要求使用者按下「接受」提示。

  • 已修改 NDK 元件中的例外狀況處理行為,以免發生當機狀況。

版本 1.13 (2019 年 11 月 8 日)

新功能

  • 現在起,駕駛可以在超過速限時收到速度快訊。您可以自訂速度快訊圖示的外觀。如《Google 地圖企業版服務條款》所述,Google 不就任何功能的品質做出任何擔保,包括速度快訊功能的準確性。速度快訊僅供參考。

  • 新增轉送選項 (RoutingOptions),可讓您在路徑預覽期間顯示替代路徑。

  • 新增相機視角,顯示路線的由上往下檢視畫面,並將路線朝向方向,讓車輛一律面對前方。您可以呼叫 NavFragment.getCamera().followMyLocation(Camera.Perspective.TOP_DOWN_HEADING_UP) 來設定這個視角。

  • 已新增 API (RoadSnappedLocationProvider 中的 resetFreeNav())。在未啟用導航功能時,只要停止透過已註冊的事件監聽器接收位置更新,即可呼叫此 API,重設 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 生命週期轉換 (onCreate() 到 onDestroy()) 期間,擲回 IllegalStateException 的錯誤。

版本 1.10 (2019 年 4 月 11 日)

功能

  • 可自訂的條款及細則對話方塊標頭:您可以使用 showTermsAndConditionsDialog 自訂條款及細則對話方塊的標題文字。

  • 路線點標記:從路線控點標記中移除英數字元。

版本 1.9 (2019 年 2 月 11 日)

功能

  • 次要標頭:您可以使用自訂控制項功能,在導覽標頭下方新增自訂內容。請參閱 setCustomControl 方法的 SECONDARY_HEADER 位置。

  • 新增依附元件:新增 Cronet 和 Glide 的依附元件。詳情請參閱「專案設定」主題中的「更新 Gradle 建構指令碼」。

已知問題

  • 如果試用版應用程式因 java.lang.ClassNotFoundException: Didnt 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 的問題。
  • 修正在離線狀態下接受服務條款對話方塊的錯誤,導致地圖無法載入的錯誤。
  • 加入以下解決方法,說明在 Navigation SDK 中會導致 NPE 導致的 Android OS 7.0 LocationManager 錯誤。

版本 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) 以上版本中的彈出式即時路線導航通知。
  • 修正在建立 NavigationViewNavigationFragment 前要求路線未顯示的問題

1.3 版 (2017 年 11 月 7 日)

  • 已將 onTrimMemory() 方法新增至 NavigationView。這個方法應由所含活動呼叫。
  • 如果無法在指定的逾時期限內找到位置修正,Navigator.setDestinations() 現在會傳回 LOCATION_UNKNOWN 狀態。您可以使用 RoutingOptions.locationTimeoutMs() 設定逾時。
  • 現在可以使用 MarkerOptions.anchor() 設定自訂標記圖片的錨點。
  • NavigationMap 現在提供 Projection 物件,可用於取得地圖可見的經緯度邊界,並將邊框間距納入考量
  • 現在可以使用 Navigator.setHeadsUpNotificationEnabled() 停用彈出式即時路線導航通知。
  • 重新置中按鈕現在提供點按事件監聽器。您可以在 NavigationViewNavigationFragmentSupportNavigationFragment 上使用 setOnRecenterButtonClickedListener() 方法進行設定。

1.2.6 版 (2017 年 10 月 25 日)

  • 修正如果 OS 自動重新建立導航服務,可能發生的 NullPointerException。
  • 如果以錯誤的順序呼叫特定生命週期方法 (例如對 onStart()onResume() 的連續呼叫),NavigationView 不會再擲回例外狀況。而是會記錄警告訊息。

版本 1.2.5 (2017 年 10 月 19 日)

  • 已新增更完善的資訊方塊快取管理功能,方便您控管記憶體用量。
  • 已修正在建立 NavigationViewNavigationFragment 前呼叫 Navigator.setDestinations() 時可能發生的當機問題。

版本 1.2.4 (2017 年 10 月 11 日)

  • 修正在建立多個 NavigationView 時沒有 Navigator 時,可能發生的記憶體流失問題。

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。