Consumer SDK for Android リリースノート

このセクションには、Consumer SDK for Android のリリースノートが掲載されています。

2.1.0(2024 年 1 月 17 日)

バグの修正

  • アプリのライフサイクル全体で SDK が複数回初期化されたときに発生するクラッシュを修正しました。

API の変更

  • SDK によって作成された GoogleMap インスタンス(ConsumerGoogleMap.getGoogleMap())を取得するメソッドを導入しました。
  • 車両(ConsumerController.getConsumerMarker())を表すために SDK によって作成された Marker インスタンスを取得する API を導入しました。
  • 移動経路の共有(ProjectedRouteEta)中に、クライアントが予測した時間と距離に関する最新情報を受け取る API を導入しました。

1.99.2(2023 年 11 月 3 日)

  • SDK がアプリとは別のリモート プロセスから初期化されたときに発生するクラッシュを修正しました。

  • カメラ アニメーションの実行時に発生するクラッシュを修正し、垂直方向または水平方向にパディングのための十分なスペースがありません。これは最新の地図レンダラでのみ発生します。

  • 2 つ目の区間が同じ道路を通るときに、連続したルートの 1 つ目の区間がカットされるバグを修正しました。

問題

  • API インスタンスがすでに存在する場合、ConsumerApi.initialize() は呼び出されると例外をスローします。この問題を回避するには、まず ConsumerApi.getInstance() を呼び出し、返された Task を評価して、API インスタンスがすでに存在するかどうかを確認します。

2.0.0(2023 年 9 月 15 日)

お知らせ: 互換性を破る変更

  • 最小 API レベル要件が 21 から 23 に更新されました。

  • Maps SDK のバージョン要件を v17.0.0 から v18.1.0 に更新しました。

  • Kotlin 標準ライブラリの最小バージョン要件が v1.6.10 から v1.9.0 に更新されました。

  • Google Play 開発者サービスの依存関係バージョンを更新する

    • play-services-base ライブラリの最小バージョン要件が v18.0.1 から v18.2.0 に更新されました。

    • play-services-basement ライブラリの最小バージョン要件が v18.0.0 から v18.2.0 に更新されました。

    • play-services-location ライブラリの最小バージョン要件が v17.0.0 から v21.0.1 に更新されました。

    • play-services-tasks ライブラリの最小バージョン要件が v18.0.1 から v18.0.2 に更新されました。

  • 最小バージョン要件を v2.5.2 に設定した androidx.room:room-runtime ライブラリを追加しました。

  • 次の依存関係バージョンを更新します

    • android-maps-utils ライブラリの最小バージョン要件が v0.4.2 から v3.5.2 に更新されました。

    • com.google.android.datatransport:transport-backend-cct の最小バージョン要件が v3.0.0 から v3.1.9 に更新されました。

    • com.google.android.datatransport:transport-runtime の最小バージョン要件が v3.0.1 から v3.1.9 に更新されました。

    • androidx.lifecycle:lifecycle-extensions の最小バージョン要件が v2.0.0 から v2.2.0 に更新されました。

    • androidx.lifecycle:lifecycle-common-java8 の最小バージョン要件が v2.0.0 から v2.6.1 に更新されました。

    • androidx.appcompat:appcompat の最小バージョン要件が v1.0.0 から v1.6.1 に更新されました。

    • androidx.fragment:fragment の最小バージョン要件が v1.0.0 から v1.6.1 に更新されました。

  • 以前に非推奨となった API ConsumerTripConsumerTripCallbackConsumerTripManagerConsumerTripOptions を削除しました。これらは、TripModelTripModelCallbackTripModelManagerTripModelOptions に置き換えられました。

  • Consumer SDK を使用するアプリでは、targetSdkVersion API 31 以降、compileSdkVersion API 33 以降が必要です。

  • Consumer SDK を使用するアプリでは、Java 8 ライブラリのサポートを有効にする必要があります。更新手順については、https://developer.android.com/studio/write/java8-support をご覧ください。

  • Proguard または Dexguard を使用するアプリを R8 に移行する必要があります。詳しくは、https://developer.android.com/build/shrink-code をご覧ください。

  • Consumer SDK を使用するアプリでは、脱糖を有効にする必要があります。手順については、https://developer.android.com/studio/write/java8-support#library-desugaring をご覧ください。

  • API インスタンスがすでに作成されているときに ConsumerApi.initialize() メソッドが呼び出されると、例外がスローされるようになりました。事前に作成された API インスタンスがあるかどうかは、ConsumerApi.getInstance() から返された Task を使用して判断する必要があります。

お知らせ: API のサポート終了

  • Trip.TripStatus アノテーション クラスと Trip.TripType アノテーション クラスが非推奨になり、TripInfo.TripStatus アノテーション クラスと TripInfo.TripType アノテーション クラスを追加して置き換えました。

    • この変更の一環として、TripModelCallback#onTripStatusUpdated(TripInfo tripInfo, @Trip.TripStatus int status) が非推奨になり、これに代わる TripModelCallback#onTripStatusUpdate(TripInfo tripInfo, @TripInfo.TripStatus int status) が追加されました。

    • この変更の一環として、TripInfo#getTripStatus() のサポートが終了しました。代わりに TripInfo#getCurrentTripStatus() を追加しました。

    • この変更の一環として、TripInfo#getTripType() のサポートが終了しました。代わりに TripInfo#getCurrentTripType() を追加しました。

  • Trip クラスのサポートが終了しました。

その他の変更とバグの修正

  • 最新の Maps SDK レンダラのリクエストをサポートします。詳しくは、新しい地図レンダラをご覧ください。

  • v18.1.0 から v19.0.0 までのバージョンの Maps SDK のサポートを提供します。

  • SDK と Google バックエンド間の内部通信における「期限超過」エラーを修正しました。

  • 小サイズ画面とピクチャー イン ピクチャー モードでのレンダリングに関する問題を修正しました。

移行ガイド

1.99.1(2023 年 8 月 31 日)

バグの修正

  • SDK ホストのアクティビティまたはフラグメントが破棄されたときに発生するクラッシュを修正しました。

  • MapView のサイズが 0(高さまたは幅)の場合に発生するクラッシュを修正しました。

  • ルートのポリラインに車両の位置を投影したときに発生するクラッシュを修正しました。

改善内容

  • ホストアプリがサイドローディングされ、デフォルトのビジュアル リソースが存在しない場合に、SDK がクラッシュしないようにします。

1.99.0(2023 年 6 月 22 日)

バグの修正

  • 小サイズ画面とピクチャー イン ピクチャー モードでのレンダリングの問題を修正しました。

  • 乗車経路の共有中に車両がちらつく問題を修正。

1.2.1(2023 年 6 月 7 日)

バグの修正

  • 乗車経路の共有中に車両がちらつくバグを修正しました。

1.2.0(2022 年 11 月 21 日)

バグの修正

  • onTripActiveRouteTrafficUpdated コールバックで空のトラフィックが報告されるバグを修正しました。

新しい機能と特長

  • 「交通状況を検知するポリライン」の一般提供が開始されました。

1.1.2(2022 年 10 月 27 日)

バグの修正

  • TripModelJourneySharingSession が複数回開始されるとルートのポリラインが表示されなくなるバグを修正しました。

お知らせ: Android 5 の凍結サポート(2022 年 7 月 25 日)

v1.1.1 SDK バージョンでは、Android 5 で実行されるアプリの、API レベル 21 と 22 の両方について、サポート期間が 1 年間延長されます。

具体的な内容:

  • Android アプリで実行されるコンシューマ SDK は、2023 年 6 月 30 日まで Android 5(API レベル 21)以降をサポートします。

  • 2023 年 6 月 30 日以降は、Android API レベル 23 以降のみがサポートされます。 この日を過ぎると、すべての SDK バージョンで Android API レベル 21 および 22 のサポートを終了します。つまり、すべての SDK バージョン(4.x を含む)における Android 21 または 22 に関連するバグは修正されず、SDK が正しく動作することを保証するものではありません。

バージョン 1.1.1(2022 年 7 月 25 日)

依存関係の変更

  • サポートされている最小 Android API レベルを 21 にダウングレードします。

バージョン 1.1.0(2022 年 4 月 28 日)

  • 内部の改善。

バージョン 1.0.19(2022 年 3 月 17 日)

バグの修正

  • ConsumerApi クラスのメモリリークを修正しました。

バージョン 1.0.14(2021 年 11 月 30 日)

サポートされる最小 Android API レベルが 23 になりました。

API の変更

  • ConsumerTrip クラスと ConsumerTripManager クラスを変更しました。

    • 意味を明確にし、iOS プラットフォームに合わせて、一部のメソッド名をクリーンアップしました。
  • ConsumerTripCallbackConsumerTripTripInfo を変更しました。

    • iOS と同等になるように、一部のクラス名を変更しました。ConsumerTripConsumerTripManagerConsumerTripOptions のサポートを終了するために、TripModelTirpModelManagerTripModelOptions を導入しました。

    • 一部のメソッド名をクリーンアップしました。メソッドに対する JavaDoc コメントを改訂または追加し、意味を明確に伝達しました。

    • エラー処理が改善されました。

スタイルのカスタマイズ

  • サポートが終了した以前のラッパー

    • MarkerStyleOptionsPolylineStyleOptions はサポートが終了し、MarkerOptionsPolylineOptions に置き換えられました。これらはどちらも Maps SDK と共有されています。

クラッシュのモニタリング

  • クラッシュ検出とロギングを追加しました。

    • この機能を無効にできる機能が追加されました。これは、クラッシュ モニタリングに関する地域全体にわたる取り組みの一環です。

認証の変更

  • Authentication インターフェースから不要なメソッドを削除します。
    • ServiceType パラメータを削除しました。

v0.9.28(2021 年 5 月 18 日)

API の変更

  • パラメータとして TripInfo を使用するように、すべての ConsumerTripCallback メソッドを更新しました。
  • ConsumerTrip が Fleet Engine からの新しいルート情報でそれ自体を積極的に更新しているかどうかを示す ConsumerTrip.isRefreshing() を追加しました。
  • ConsumerTripCallback.onTripRemainingRouteDistanceUpdated() を追加しました。
  • ConsumerTripCallback.onTripRemainingRouteUpdated() を追加しました。
  • Guava の戻り値の型(ImmutableSetImmutableList)を、java.util の同等のクラスに置き換えました。
  • パッケージ名の変更:

    • com.google.android.libraries.ridesharing.common.AuthTokenContext -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenContext
    • com.google.android.libraries.ridesharing.common.AuthTokenFactory -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenFactory
    • com.google.android.libraries.ridesharing.common.FleetEngineServiceType -> com.google.android.libraries.ridesharing.consumer.auth.FleetEngineServiceType - com.google.android.libraries.ridesharing.common.model.Trip

                                  ->
                                                                  com.google.android.libraries.ridesharing.consumer.model.Trip
      
                                  -   com.google.android.libraries.ridesharing.common.model.Vehicle
      
                                                          ->
                                      com.google.android.libraries.ridesharing.consumer.model.Vehicle
      

実装の変更

  • 準備完了前に地図を操作することで SDK がクラッシュする可能性のある競合状態を修正しました。
  • SDK には、難読化されていない io.grpc のコピーが含まれなくなりました。
  • 特定のデバイスで交通状況のポリラインがちらつくバグを修正しました。トラフィック セグメントの終点は丸められます。

v0.9.15(2020 年 10 月 7 日)

API の変更

  • このリリースでは、トラフィック対応ポリラインが導入されました。- TripInfo.getActiveRouteTraffic()TripInfo.getRemainingRouteTraffic() を追加しました。
    • トラフィックの変化を示す ConsumerTripCallback.onTripActiveRouteTrafficUpdated()ConsumerTripCallback.onTripRemainingRouteTrafficUpdated() を追加しました。
    • トラフィックのカスタマイズ用の PolylineStyleOptions を追加しました(setTrafficEnabled()setTrafficColorNoData()setTrafficColorNormal()setTrafficColorSlow()setTrafficColorTrafficJam())。
    • PolylineStyleOptions.TRAFFIC_Z_INDEX_ADDITION を公開しました。
    • TripWaypoint.getTrafficData() を追加しました。
    • TrafficData データ型を追加しました。
    • ConsumerController.hideAllSessions() を追加しました。 ConsumerController.showSession() が引数として null を受け取らなくなりました。

バージョン 0.9.9(2020 年 7 月 15 日)

API の変更

  • これは、データ専用レイヤ(ConsumerTripManager など)とユーザー インターフェース レイヤ(JourneySharingSession など)の間に明確な関係を持つモジュール化アーキテクチャを導入する大きな変更です。新しいアーキテクチャへの移行については、モジュール化の移行ガイドをご覧ください。- ConsumerTrip オブジェクトが ConsumerTripManager.getTrip() から取得されるようになりました。
    • ConsumerTrip.unregisterCallback の名前が ConsumerTrip.unregisterTripCallback に変更されました。
    • ConsumerTrip.isCallbackRegistered の名前が ConsumerTrip.isTripCallbackRegistered に変更されました。
    • ConsumerTrip.setConsumerTripOptions()ConsumerTrip.getConsumerTripOptions() を追加しました。
    • ConsumerTrip.setAutoRefreshInterval() を削除しました。
  • ジャーニー共有以外の API を削除しました。
    • 車両密度マップを削除しました。
    • ルートのプレビュー ステータスを削除しました。
    • 受け取りの選択状態を削除しました。
    • 降車の選択状態を削除しました。
    • マーカーのタイプ(SELECTED_PICKUP_POINTSUGGESTED_PICKUP_POINTHIGHLIGHTED_PICKUP_POINTSELECTED_DROPOFF_POINT)を削除しました。
  • OnConsumerMarkerClickCallbackConsumerMapReadyCallback をインターフェースから抽象クラスに変更しました。
  • ConsumerController.getCameraUpdate()ConsumerController.isAutoCameraEnabled()ConsumerController.enableAutoCamera() を追加しました。
  • カスタム FAB とそれに関連するメソッド(ConsumerController.isMyLocationFabEnabledConsumerController.setMyLocationFabEnabled)を削除しました。

実装の変更

  • ConsumerTripCallback は、LifecycleOwner の有無にかかわらず、TripStatus.COMPLETE または TripStatus.CANCELED で自動的に登録解除されなくなりました。
  • AutoCamera がデフォルトで有効になり、自身を再度有効にしたり無効にしたりすることはありません。以前は、ユーザーがジャーニーの共有中に地図を操作したときに、AutoCamera は TripStatus.ARRIVED_AT_PICKUP で自動的に再び有効になり、自身を無効にしていました。
  • ジャーニー共有の車両アニメーションが次のように改善されました。
    • 移動経路の共有アニメーションで、車両がすでに通過したルートを合法的に後戻りする状況が処理されるようになりました。
    • アルゴリズムによって適切と判断された場合、ポイント間でルートを補間するのではなく、直線のアニメーションで表示されるようになりました。
  • FINE_LOCATION 権限は不要になりました。

その他の変更点

  • 次の依存関係のバージョンを更新しました。
    • com.google.android.datatransport:transport-api:2.2.0
    • com.google.android.datatransport:transport-backend-cct:2.2.0
    • com.google.android.datatransport:transport-runtime:2.2.0

バージョン 0.9.1(2020 年 3 月 23 日)

API の変更

  • TripInfo.getVehicleId()TripInfo.getNumberOfPassengers()TripInfo.getIntermediateDestinationIndex()TripInfo.getTripActiveRoute()TripInfo.getTripRemainingRoute() を追加しました。
  • ConsumerApi の初期化中に使用される options クラスを追加しました。これにより、FleetEngine アドレスを動的に設定できます。API が FleetEngine 値で呼び出されない場合は、Android マニフェストから API を取得しようとします。そうでない場合は、デフォルト値にフォールバックします。

改善内容

  • ルート ステータスが ARRIVED_AT_PICKUP の場合、ルートのポリラインは表示されません。
  • ルート外車両のトラッキングが改善されました(DriverSDK 1.15 が必要)。
    • 車両追跡では、車両が乗車ポイントを通過しても、車両がルートにスナップされません。
    • 車両トラッキングを使用すると、道路から離れた場所(たとえば、地図に記載されていない駐車場)に車両を表示できます。
  • ドライバーの目的地が Fleet Engine の目的地と一致しない場合、車両アイコンが更新されるようになりました。

v0.8.6(2019 年 12 月 16 日)

API の変更

  • TripInfo.getVehicleLocation() を追加しました。

  • ConsumerMapView は最終版ではなくなりました。

実装の変更

  • アクティブな区間の残り距離は、ローカル スナップではなく、サーバー距離(ドライバーが報告された + 静的ルート(該当する場合))を使用して計算されるようになりました。この変更により、より正確な残りの距離の値が生成されます。

その他の変更点

  • 新しい依存関係が必要です。詳しくは、.pom ファイルをご覧ください。

    • com.google.android.datatransport:transport-api:2.0.0
    • com.google.android.datatransport:transport-backend-cct:2.0.2
    • com.google.android.datatransport:transport-runtime:2.0.0
  • ルート リクエストのレイテンシのログを追加しました。

  • ルート レスポンス エラーのログを追加しました。

メモ

  • バージョン 0.8.1 以降、Consumer SDK for Android は Jet 形式の zip アーカイブとして出荷されます。Jetify を無効化する方法については、Jetifier: リバースモードをご覧ください。

バージョン 0.8.1(2019 年 9 月 13 日)

新しい機能と特長

API の変更

  • centerMapForState() の逆関数として ConsumerController.disableAutoCamera() を追加しました。

  • VehicleLocation.getUpdateTime() は、タイムスタンプ(ミリ秒単位)を表す Long を返すようになりました。

  • トークン生成用の単一のメソッドを公開するように AuthTokenFactory インターフェースを簡素化しました。Java7 での下位互換性を有効にするため、AuthTokenFactory をインターフェースから抽象クラスに変更しました。この変更には下位互換性がありますが、単一のサービス トークンを生成する古いメソッドは非推奨であり、最終的に削除される予定です。

実装の変更

  • アセットがアイコンの中央に配置され、シャドウのオフセットがなくなりました。

  • モニタリング対象のルートのステータスを待機する代わりに、setStateJOURNEY_SHARING onStartTripMonitoring() に送信します。

  • ルートデータが同期されていなくても、最初に更新されたルートデータは常に返されます。

  • 提供される依存関係として Android Map Utils を追加しました。

バグの修正

  • grpc keep の ProGuard エクスポート構文の破損を修正しました。

v0.7.0(2019 年 8 月 7 日)

新しい機能と特長

  • 移動経路の共有が複数の目的地に対応しました。

API の変更

  • ConsumerTripCallback の新しいメソッド。

    • onTripIntermediateDestinationsUpdated().
    • onTripETAToNextTripWaypointUpdated().
  • 新しい ConsumerController メソッド。

    • getIntermediateDestinations().
    • setIntermediateDestinations(List<TerminalLocation> intermediateDestinations).
  • 新しい TripStatuses

    • TripStatus.ENROUTE_TO_INTERMEDIATE_DESTINATION.
    • TripStatus.ARRIVED_AT_INTERMEDIATE_DESTINATION.
  • TripWaypoint の新しいゲッター。

    • getETAMillis().
    • getDistanceMeters().
  • TripInfo クラスを追加しました。

    • アクティブなルートの TripInfo は、ConsumerTripManager.getActiveTripInfo() で取得できます。
  • WaypointType.INTERMEDIATE_DESTINATION を追加しました。

  • MarkerType.TRIP_INTERMEDIATE_DESTINATION を追加しました。

  • 結合された ConsumerMapStates ENROUTE_TO_PICKUPARRIVED_AT_PICKUPENROUTE_TO_DROPOFFCOMPLETE から ConsumerMapState.JOURNEY_SHARING を作成しました。

    • StateChangeCallbacks を更新しました。

    • onStateJourneySharing() を追加しました。

    • onStateWaitingForPickup()onStateDriverArrived()onStateEnroute()onStateEndofTrip() を削除しました。

バグの修正

  • ルート モニタリングがアクティブなルートの途中(ルートの先頭ではない)に開始された場合、ルートが車両の位置に合わせてトリミングされないバグを修正しました。

  • TripManager がルートデータを取得した後、Tripmanager に登録されているリスナーに対してルート コールバックが呼び出されないバグを修正しました。

  • カメラのズームには、アクティブなルートと次のルートの地点(ルートに属するウェイポイント)のみが含まれるようになりました。残りの区間が表示されている場合でも、ズームには含まれません。以前は、車両が乗車中または乗車地点に到着したときは、降車場所がズームに含まれていました。これはもはや事実ではありません。

改善内容

  • 残りの 0 番目の地点にドライバーのデータを入力します(残りの地点リストは ConsumerTripCallback.onTripRemainingWaypointsUpdatedTripInfo.getRemainingWaypoints() から返されます)。

  • リストの最初の地点への到着予定時刻が変更されたときに、残りのすべての地点の到着予定時刻を更新します。

  • ドライバーがピックアップに到着したときのみ自動カメラを強制的に再有効化。以前は、オートカメラはルート ステータスが変更されるたびに有効にリセットされていました。自動カメラは引き続きデフォルトで有効になっています。startTripMonitoring() を再度呼び出さずに新しいアクティブなルートを設定した場合、オートカメラは再度有効にはなりません。

v0.6.1(2019 年 6 月 26 日)

新しい機能と特長

  • 相乗りで行程の共有をサポート。

API の変更

  • ConsumerController.getConsumerMapStyle()Task<ConsumerMapStyle> ではなく ConsumerMapStyle を返すようになりました。

  • PolylineStyle.setZIndex() を追加しました。

バグの修正

  • ルート アニメーションがルート セグメントが同期している場合にのみ実行されるようになりました。これにより、ユーザー エクスペリエンスが向上します。

  • 運転手の位置情報の更新が近い場合に、アニメーションの補間中に車両が「ちらつく」問題を修正しました。

  • 有効なルートの途中でルート モニタリングが開始されると、車両が最新の場所ではなくルートの先頭から始動するバグを修正しました。

  • アクティブなルートのポリラインが残りのルートの上に重なる場合、その上に表示されます。

改善内容

  • 難読化されていないメソッドで gRPC Status クラスを公開します。

v0.5.1.01(2019 年 5 月 17 日)

新しい機能と特長

  • 移動経路の共有を連続してサポート。

API の変更

  • 新しい ConsumerController クラス。

PolylineType

Old Value(元の値) 新しい値
TRIP_PREVIEW_AUTO_ROUTE PREVIEW_AUTO_ROUTE
TRIP_PREVIEW_TAXI_ROUTE PREVIEW_TAXI_ROUTE
TRIP_PREVIEW_TRUCK_ROUTE PREVIEW_TRUCK_ROUTE
TRIP_PREVIEW_TWO_WHEELER_ROUTE PREVIEW_TWO_WHEELER_ROUTE
TRIP_ROUTE ACTIVE_ROUTE
REMAINING_ROUTE

ConsumerTripCallback

Old Value(元の値) 新しい値
onTripRouteUpdated onTripActiveRouteUpdated
onTripRemainingDistanceUpdated onTripActiveRouteRemainingDistanceUpdated
onTripRemainingWaypointsUpdated()

ConsumerController

  • 状態に入ることなく、状態のコールバックを設定できるようになりました。
メソッド コールバック
startPickupSelection setPickupSelectionCallback
startDropoffSelection setDropoffSelectionCallback
startTripPreview setTripPreviewSelectionCallback
  • ConsumerController.setLanguage(String languageCode) を使用すると、FleetEngine の呼び出しで使用される言語(ピックアップ ポイントの説明など)を設定できます。

改善内容

  • ドロップオフの選択状態にドラッグ可能なピンが追加されました。
  • INITIALIZE 状態のカメラ アニメーションを削除しました。
  • ManagedChannelBuilderAndroidChannelBuilder に置き換えました。