Android 版 Navigation SDK 可在 Android 版 Maps SDK 中加入導航功能。如果以 Google 地圖為基礎的 Android 應用程式需要導航功能,就必須依附於 Android 版 Navigation SDK。
不過,Navigation SDK for Android 中的大部分函式,行為都與 Maps SDK for Android 相同。無論使用哪個 SDK 依附元件,您都可以透過相同的 com.google.android.gms.maps
套件存取這些函式庫。也就是說,如果您的應用程式先前依附於 Maps SDK for Android,您可以將其依附元件變更為 Navigation SDK for Android,而不會影響應用程式的現有功能,但有兩個明顯例外:
- 會擲回例外狀況的 API。
- 這些 API 無法在 NavSDK 中運作,呼叫時也不會產生任何影響。
以下說明這些例外狀況。
會擲回例外狀況的 API
如果應用程式啟用下列函式,就會擲回例外狀況:
Navigation SDK 中沒有功能的 API
下列 API 在 Navigation SDK 中沒有任何功能,但如果您的程式碼呼叫這些 API,也不會造成任何影響。這些問題可分為以下幾類:
- 穿戴式裝置活動的 API。
- 如要在 Navigation SDK for Android 中使用這項功能,請改為啟用 TBT 資訊動態消息。
- 其他 API。
穿戴式裝置專用 API
GoogleMapOptions.ambientEnabled(boolean enabled) 通常可讓您為穿戴式應用程式停用或啟用微光模式。此外,MapView 和 MapFragment 中有 onEnterAmbient 和 onExitAmbient 方法,但呼叫時不會產生任何影響。如果是穿戴式裝置,請改用 TBT 動態饋給。
其他 API
- 在 NavSDK 中設定自訂 LocationSource 不會產生任何作用。
- 所有 MapsInitializer API。
- RuntimeRemoteException。
僅供 Mobility Services 客戶使用的 API
Navigation SDK 中有幾項 API 僅供 Mobility Services 客戶使用,Google 會按交易次數向這類客戶收費。如果您不是 Mobility Services 客戶,下列方法不會執行任何作業:
NavigationTransactionRecorder.pickup()
NavigationTransactionRecorder.dropoff()
NavigationTransactionRecorder.generatedTransactionId()
Navigator.fetchRouteInfo()
Navigator.setTransactionIds()