この変更履歴では、Navigation SDK for Android の各リリースの新機能とバグ修正について詳しく説明します。
2021 年 10 月 18 日 - API レベル 23、24、25 のサポートの凍結
Google の内部依存関係の変更に伴い、Android API レベル 23、24、25(Android 6、7.0、7.1)は、2022 年の第 3 四半期以降、新しいバージョンの Android 用 Navigation SDK と Driver SDK でサポートされなくなります。
2022 年の第 3 四半期に開始される Android バージョン用の Navigation SDK と Driver SDK は、Android API レベル 26 以上を搭載したデバイスのみをサポートします。
v4.x 以前の Android 用 Navigation SDK と Driver SDK でビルドされたアプリのバージョンは、Android API レベル 25 以前を搭載したデバイスで引き続き動作します。
サポート終了のお知らせ(2021 年 6 月 21 日)
このお知らせでは、上記の日付以降の、Android 用 Navigation SDK と Android 用 Driver SDK のサポート終了について説明します。このお知らせは、サービスに関する重要なお知らせ(MSA)として影響を受けるお客様にも送信されました。
Android 用 Navigation SDK と Android 用 Driver SDK v1.x のサポート終了
Nav/Driver SDK v1 は 2018 年にリリースされました。v3 バージョンはまもなくリリースされるため、多くのメジャー バージョンをサポートすることによる持続可能性を回避するために、v1 のサポートを終了する必要があります。
この追加バージョンをサポートする必要がなくなったことで時間を節約できたため、Google は最新のメジャー バージョンのサポートを強化し、お客様にとって重要な機能をさらに構築することができます。
そのため、Nav/Driver SDK v1.x は非推奨となり、2022 年 6 月 21 日以降は保守されなくなります。
SDK バージョンのサポート終了の仕組みをご覧ください。
Android のサポート終了に関するその他の情報については、Navigation SDK for Android の v2/v3 リリースノートをご覧ください。
バージョン 1.51.1(2022 年 4 月 1 日)
安定性とバグの修正
利用規約ダイアログの無効なハイパーリンクを修正しました。
Android アクティビティが破棄されたときに、一部のクライアントで利用規約ダイアログ エラーが発生しました。アクティビティが破棄されたときに、クライアントでこのダイアログ エラーが発生しなくなりました。
バージョン 1.51(2022 年 1 月 18 日)
API の変更
Navigation SDK の最小 Android API レベルを 23 に引き上げ、対象 API レベルを 30 に引き上げます。このターゲット バージョンは、Google Play の要件に準拠しています。
ナビゲーション シェブロンを通るポリラインを「グレー」の色でレンダリングし、ユーザーがすでにそのルートのセクションを通ったことを示します。
バージョン 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 に 2 つの新しいメソッドを追加しました。
進行中のナビゲーション セッションのトランザクション ID を取得するための新しいメソッドを Navigator API に追加しました。この API は、新しいナビゲーション セッションが開始されたときや、進行中のナビゲーション セッションでトランザクション ID が変更されたとき(ジャーニー セグメントのリストが更新されるときなど)に使用されます。
バージョン 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
と併用します。
安定性とバグの修正
クラッシュにつながる
NullPointerExceptions
などの望ましくない副作用により、NavigationApi.cleanUp
メソッドを非推奨にしました。Waypoint.fromLatLng()
とWaypoint.fromPlaceId()
のサポートが終了し、Waypoint.builder()
に置き換えられました。NavigationTransactionRecorder
に含まれるAddressListener
クラスは使用されていないため、非推奨になりました。
バージョン 1.15(2020 年 3 月 23 日)
新機能
ナビゲーション ヘッダー用のカスタマイズ可能なフォント、色、アイコン。
Navigation Header UI で、推奨レーンの色のカスタマイズをサポートします。
コールバック / リスナーを設定するための追加 / 削除パターンに従うように複数の API を更新しました。以前の
set*
メソッドは非推奨となったため、今後のリリースで削除される予定です。サポートが終了したメソッドは以下のとおりです。SupportNavigationFragment.setOnNightModeChangedListener
SupportNavigationFragment.setOnRecenterButtonClickedListener
NavigationFragment.setOnNightModeChangedListener
NavigationFragment.setOnRecenterButtonClickedListener
NavigationView.setOnNightModeChangedListener
NavigationView.setOnRecenterButtonClickedListener
Navigator.setArrivalListener
Navigator.setRouteChangedListener
Navigator.setRemainingTimeOrDistanceChangedListener
安定性とバグの修正
navsdk の minSdkVersion を 19 に引き上げました。
サーバーサイドのリバース ジオコーディングが失敗した場合に緯度/経度のウェイポイント名が機能しないバグを修正しました。
バージョン 1.14(2020 年 2 月 2 日)
新機能
(ベータ版)オペレーターは、ルートリクエストでルートの目標距離を設定することで、ドライバーがどのルート オプションに従うかを制御できます。この機能はベータ版です。ご興味をお持ちの場合は、カスタマー エンジニアリング担当者にお問い合わせください。
API 29 までの SDK をコンパイル
安定性とバグの修正
利用規約ダイアログで、ドライバーに「同意する」プロンプトが必須にならないバグを修正しました。
クラッシュ状態を回避するように、NDK コンポーネントの例外処理動作を変更しました。
バージョン 1.13(2019 年 11 月 8 日)
新機能
制限速度を超えたときに、速度に関するアラートが届くようになりました。速度アラートのアイコンの外観はカスタマイズできます。Google Maps Enterprise の利用規約に記載されているとおり、Google は速度アラート機能の精度を含め、機能の品質について保証しません。速度アラートは、情報提供のみを目的としています。
ルートのプレビュー中に代替ルートを表示できる新しいルーティング オプション(
RoutingOptions
)を追加しました。車両が常に前を向くようにルートの向きを合わせて、ルートを上から見下ろして表示する新しいカメラの視点を追加しました。この視点を構成するには、
NavFragment.getCamera().followMyLocation(Camera.Perspective.TOP_DOWN_HEADING_UP)
を呼び出します。ナビゲーションがアクティブでないときに、登録済みのリスナーで位置情報の更新の受信を停止するたびに、Free Nav サービスをリセットするために呼び出す新しい API(
RoadSnappedLocationProvider
のresetFreeNav()
)を追加しました。
安定性とバグの修正
- 利用規約ダイアログの内容を更新しました。
バージョン 1.12(2019 年 10 月 7 日)
新機能
ナビゲーション中に、1 つまたはすべての代替ルートを表示または非表示にできるようになりました。
リクエストでルーティング戦略(最短/最速ルート)を指定できるようになりました。
[利用規約] ダイアログ(テキストサイズ、色など)を完全にカスタマイズする機能を追加しました。
安定性とバグの修正
com.google.http-client
の問題で重複するクラスを修正しました。新しい Places SDK を使用するようにデモアプリを更新し、デモアプリを Jetified にしました。
ルート概要でのカメラのフレームレートを改善しました。
バージョン 1.11(2019 年 6 月 28 日)
パフォーマンスの改善
setDestination
ネットワーク レイテンシが改善されました。
バグの修正
複数の地点をナビゲートする際の
onArrival
コールバックとの不整合を修正しました。現在地の近くにないウェイポイントに対して到着が途中でトリガーされる問題を修正しました。
java.lang.IllegalStateException
NavigationView.onDestroy
の呼び出しは、NavigationView.onCreate
の呼び出しをフォローできません。
その他
オープンソース ソフトウェア ライセンスの更新。
冗長なデータを削除し、UI を簡素化するため、ルート上のルート ETA コールアウトを削除しました。
バージョン 1.10.2(2019 年 4 月 11 日)
安定性とバグの修正
- フラグメントのライフサイクルの移行(onCreate() から onDestroy() へ)中に IllegalStateException がスローされる可能性のあるバグを修正しました。
バージョン 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 日)
機能
タクシーモード - ベータ版: タクシー専用の車線や通りを使用して、タクシーとして識別された車両の経路と到着予定時刻(ETA)を提供できます。
現在サポートされている地域は次のとおりです。
- ブラジル: リオデジャネイロ
- イギリス: バーミンガム、コヴェントリー、ロンドン大都市圏、マンチェスター
- イスラエル: テルアビブ
- アイルランド: ダブリン
- ロシア: モスクワ
- スコットランド: グラスゴー、エディンバラ
- スペイン: マドリード、バルセロナ
安定性とバグの修正
- メモリリークの修正
- パフォーマンスの向上
バージョン 1.7.3(2018 年 9 月 18 日)
バグの修正
NavigationView
がonStart
からonStop
に直接移行できるようになりました。これにより、IllegalStateException
は生成されなくなります。
バージョン 1.7.2(2018 年 8 月 16 日)
機能
- ナビゲーション中にルートリストを表示して、配車の次のターンを表示できるようになりました。ルートリストは
DirectionsListView
で提供されます。 getSeverity
メソッドでTimeAndDistance
クラスを使用してトラフィックのステータスを取得できるようになりました。- 車両のナンバー プレートの制限がサポートされるようになりました。
バグの修正
- 利用規約ダイアログで不定期に発生するクラッシュ(
IllegalStateException
としてマニフェスト)を修正しました。 - 「attempt to write to field ... on a null object reference」などのメッセージを伴う NullPointerException を修正しました。
- R.txt のリソース識別子(以前はすべて 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 によって自動的にテーマを切り替えることもできます。
- 二輪車移動モード(ベータ版): 移動モードを
TWO-WHEELER
に設定して、オートバイやスクーターのルートを取得できるようになりました。現在、この機能はインドとインドネシアでのみご利用いただけます。 - 制限速度: 制限速度アイコンをプログラムで表示または非表示にできるようになりました(このアイコンは、信頼性の高い制限速度データを利用できる場所にのみ表示されます)。
- カスタムの地図オーバーレイ コントロール: カスタムの地図オーバーレイ コントロールを使用すると、ナビゲーション中に UI 要素を動的に配置できます。
getNavigator()
呼び出しが Application コンテキストを受け取り、サービスから呼び出せるようになりました。
バグの修正
- 利用規約ダイアログのテキスト レイアウトに関するいくつかの問題に対処し、右から左に表記する言語の表示を改善しました。
バージョン 1.3.4(2018 年 1 月 24 日)
clearDestinations
が以前のルートの消去に失敗することがあるバグを修正しました
バージョン 1.3.3(2017 年 12 月 18 日)
- UI とレンダリング スレッドの両方で使用されるため、
CameraArbitrator
クラスをスレッドセーフにしました。 onDestroy()
が呼び出された後でCompassButtonController
のイベントが発生した場合は、NPE をスローしない。- NavigationApi のパブリック メソッドの null チェックを追加しました。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 を起動しました。