この変更履歴では、Navigation SDK for Android の各リリースの新機能とバグ修正について詳しく説明します。
2021 年 10 月 18 日 - API レベル 23、24、25 の凍結サポート
内部依存関係の変更に伴い、2022 年の第 3 四半期以降、Android API レベル 23、24、25(Android 6、7.0、7.1)は、Navigation SDK for Android と Driver SDK for Android の新しいバージョンではサポートされなくなります。
2022 年の第 3 四半期以降にリリースされた Android バージョンの Navigation SDK と Driver SDK は、Android API レベル 26 以降を搭載しているデバイスのみをサポートします。
Android 用の Navigation SDK と Driver SDK v4.x 以前でビルドされたアプリのバージョンは、Android API レベル 25 以前を搭載したデバイスで引き続き機能します。
サポート終了のお知らせ(2021 年 6 月 21 日)
このお知らせでは、上記の日付の時点で Navigation SDK for Android と Driver SDK for Android が非推奨になっている方法について説明します。また、このお知らせは、サービスに関する重要なお知らせ(MSA)として、影響を受けたお客様にも送信されました。
Navigation SDK for Android と Driver SDK for Android 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
のラッパーが追加されました。新しいナビゲーション セッションのリスナーの設定と削除を可能にする 2 つの新しいメソッドを Navigator API に追加しました。
進行中のナビゲーション セッションのトランザクション ID を取得する新しいメソッドを Navigator API に追加しました。この API は、新しいナビゲーション セッションの開始時と、進行中のナビゲーション セッションでトランザクション ID が変更されたとき(ジャーニー セグメントのリストが更新されたときなど)に使用する必要があります。
バージョン 1.18(2020 年 10 月 9 日)
setAbnormalTerminationReportingEnabled(boolean)
メソッドを追加しました。このメソッドにより、ユーザーはクラッシュ検出のモニタリングを無効にできます。LocationListeners
をonLocationChange
イベントから登録解除できないバグを修正しました。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 を追加しました。SpeedAlert
コールバックにパラメータSpeedAlertSeverity
を追加しました。このパラメータはSpeedingListener
と併用します。
安定性とバグの修正
クラッシュにつながる
NullPointerExceptions
などの望ましくない副作用があるため、NavigationApi.cleanUp
メソッドが非推奨になりました。Waypoint.fromLatLng()
とWaypoint.fromPlaceId()
が非推奨になり、Waypoint.builder()
に置き換えられました。NavigationTransactionRecorder
に含まれるAddressListener
クラスは、使用されていないため非推奨にしました。
バージョン 1.15(2020 年 3 月 23 日)
新機能
Navigation ヘッダーのカスタマイズ可能なフォント、色、アイコン。
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)
を呼び出します。ナビゲーションがアクティブでない場合でも、登録済みのリスナーで位置情報の更新の受信を停止したときにいつでも無料ナビサービスをリセットするために呼び出すことができる新しい 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.onCreate
の呼び出しの後にNavigationView.onDestroy
の呼び出しを実行することはできません。
その他
オープンソース ソフトウェア ライセンスの更新。
冗長データを削除し、UI を簡素化するために、ルート上のルート ETA コールアウトを削除しました。
バージョン 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 ビルドツールの依存関係を 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
として明示される)が修正されました。 - 「null オブジェクト参照でフィールドに書き込みました」などのメッセージを伴う NullPointerException が修正されました。
- R.txt のリソース識別子(以前はすべて 0x1)に正しい値が設定されました。
バージョン 1.6.2(2018 年 7 月 16 日)
バグの修正
AccessibilityStateUtils.getAccessibilityState()
の NullPointerException を修正しました。
バージョン 1.6.0(2018 年 5 月 10 日)
バグの修正
- 乗車区間と別の経路で到着予定時刻のコールアウトが誤って表示されるバグを修正しました。
- 場所の緯度または経度の値が
null
の場合の NullPointerException を修正しました。 - オフライン時に ToS ダイアログに同意した場合に地図が読み込まれないバグを修正しました。
- Navigation SDK で NPE が発生する Android OS 7.0 LocationManager のバグの回避策が導入されました。
バージョン 1.5.0(2018 年 3 月 26 日)
機能
- 夜間モード: 夜間モードのテーマを使用するようにナビゲーションを設定できるようになりました。夜間モードをプログラムで有効または無効にできます。また、Navigation SDK が時間帯に基づいてテーマを自動的に切り替えられるようにすることもできます。
- オートバイの移動モード(ベータ版): 移動モードを
TWO-WHEELER
に設定して、オートバイやスクーターのルートを取得できるようになりました。現在、この機能はインドとインドネシアでのみご利用いただけます。 - 制限速度: 制限速度アイコンをプログラムで表示または非表示にできるようになりました(このアイコンは、信頼できる制限速度データが利用可能な場所にのみ表示されます)。
- カスタムの地図オーバーレイ コントロール: カスタムの地図オーバーレイ コントロールを使用すると、ナビゲーション中に UI 要素を動的に配置できます。
getNavigator()
呼び出しはアプリ コンテキストを受け取り、サービスから呼び出せるようになりました。
バグの修正
- 右から左に表記する言語の表示を改善するため、利用規約ダイアログのテキスト レイアウトに関するいくつかの問題に対処しました。
バージョン 1.3.4(2018 年 1 月 24 日)
clearDestinations
が以前のルートを消去できないことがあるバグを修正しました
バージョン 1.3.3(2017 年 12 月 18 日)
CameraArbitrator
クラスは UI とレンダリング スレッドの両方で使用されるため、スレッドセーフになりました。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 をリリースしました。