Consumer SDK for Android を使用すると、 構築できます。API の一部は必要な部分と 独自の API と統合できます。 Consumer SDK さまざまな機能の API が別々のモジュールにカプセル化されています。
配車共有アプリで以前のバージョンの Consumer SDK を使用している場合は、 このモジュラー アーキテクチャを使用するには、アプリをアップグレードする必要があります。この 移行ガイドで、アプリのアップグレード方法について説明します。
概要
Consumer SDK のモジュラー アーキテクチャでは、 ユーザー インターフェースの状態を保持する Session オブジェクト。以前のバージョンの場合 状態間でやり取りされます。あり 使用するには、まず Session オブジェクトを作成し、 地図上にセッションを表示するオプションがありますセッションがない場合 地図は空白になります。「空の」状態はなくなりました。 「初期化済み」であるあります。
Session オブジェクトは、モジュールの単一のライフサイクル使用インスタンスを表します。 セッションは、モジュール API へのアクセス ポイントです。たとえば 移動経路の共有セッションは、単一の移動をたどるものです。操作 Session オブジェクトと組み合わせてルートを監視します。
Session オブジェクトはモジュール タイプに関連付けられます。Session オブジェクトの 動作は、その初期化に使用されるオブジェクトのライフサイクルにリンクされます。
TRIP_A を追跡するために TripModel
オブジェクトを作成するとします。
TRIP_A の TripModel
オブジェクトを再度取得しようとすると、次のようになります。
同じ TripModel
オブジェクトを取得します。TRIP_B を追跡するには、
TripModel
オブジェクト。
セッションの状態
セッションは次のいずれかの状態になります。
作成されたセッションは、Session オブジェクトで表されます。自分で作成
create
メソッドを呼び出してセッションを作成します。例:JourneySharingSession sessionA = JourneySharingSession.createInstance(TripModelA)
開始されたセッションは、データと値を更新するために登録されます。 説明しました。セッションを開始するには
start
メソッドを使用します。例:sessionA.start()
表示されているセッションは自動的に開始されます。ユーザー インターフェースの要素 データの更新に応じてそれらを更新します。セッションを表示する
showSession
メソッドを呼び出します。例:ConsumerController.showSession(sessionA)
停止したセッションはデータの更新を停止し、セッションの更新も停止します。 ユーザー インターフェース要素です。セッションを停止するには、
stop
メソッドを呼び出します。 例:sessionA.stop()
データ専用コンポーネントとユーザー インターフェース コンポーネントを使用する
ライドシェアリング アプリを作成するには、データ通信専用コンポーネントのいずれかを使用します On-demand Rides and Deliveries Solution が提供するユーザー インターフェース要素 API を使用できます。
データ専用コンポーネントの使用
データ専用コンポーネントを使用してライドシェアリング アプリを作成するには:
ConsumerApi
オブジェクトを初期化します。ConsumerApi
からTripModelManager
オブジェクトを取得します。TripModelManager
を使用してルートのモニタリングを開始し、TripModel
オブジェクトを受け取ります。TripModel
オブジェクトにコールバックを登録します。
次の例は、データのみのコンポーネントを使用する方法を示しています。
TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = tripManager.getTripModel("trip_A");
tripA.registerTripCallback(new TripModelCallback() {})
ユーザー インターフェース要素の API を使用する
ConsumerController
オブジェクトを使用してアクセスする
On-demand Rides and Deliveries Solution ユーザー インターフェース要素の API。
On-demand Rides and Deliveries Solution のユーザー インターフェースを持つライドシェアリング アプリを作成する 要素 API:
ConsumerApi
オブジェクトを初期化します。ConsumerApi
オブジェクトからTripModelManager
オブジェクトを取得します。- 1 つのルートを追跡する
TripModelManager
からTripModel
オブジェクトを取得します。 ConsumerMap[View/Fragment]
をアプリケーション ビューに追加します。ConsumerMap[View/Fragment]
からConsumerController
オブジェクトを取得します。TripModel
オブジェクトをコントローラに渡して、JourneySharingSession
オブジェクトを取得します。- コントローラを使用して
JourneySharingSession
を表示します。
次の例は、ユーザー インターフェース API の使用方法を示しています。
TripModelManager tripManager = ConsumerApi.getTripModelManager();
TripModel tripA = TripModelManager.getTripModel("trip_A");
// Session is NOT automatically started when created.
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
JourneySharingSession jsSessionB = JourneySharingSession.createInstance(tripB);
// But a session is automatically started when shown.
ConsumerController.showSession(jsSessionA);
ConsumerController.showSession(jsSessionB); // hides trip A; shows trip B.
ConsumerController.hideAllSessions(); // don't show any sessions
// Unregister listeners and delete UI elements of jsSessionA.
consumerController.showSession(jsSessionA);
jsSessionA.stop();
// Recreates and shows UI elements of jsSessionA.
jsSessionA.start();
モジュラー アーキテクチャ コードの変更
配車共有アプリで以前のバージョンの Consumer SDK を使用している場合は、 更新するには、コードの変更が必要になります。 このセクションでは、その一部について説明します。
位置情報の利用許可
FINE_LOCATION
権限が不要になりました
使用します。
ルート監視
更新されたモジュラー アーキテクチャでは、両方のコード変更が必要 データレイヤとユーザーインターフェースの ユーザーインターフェースです
以前のバージョンでは、データレイヤーのユーザーが 次のコードを使用します。
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
manager.registerActiveTripCallback(new TripModelCallback() {})
データレイヤのユーザーは、モジュラー アーキテクチャを使用して 次のコードを使用します。
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTrip("trip_A")
tripA.registerTripCallback(new TripModelCallback() {})
それより前のバージョンでは、ユーザー インターフェースのユーザーがルートの監視を行っていました。 次のコードを使用します。
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
manager.setActiveTrip("trip_id")
ConsumerController controller = consumerGoogleMap.getConsumerController();
consumerController.startJourneySharing()
モジュラー アーキテクチャでは、ユーザー インターフェースのユーザーが 次のコードを使用します。
ConsumerApi.initialize()
TripModelManager manager = ConsumerApi.getTripManager()
TripModel tripA = TripModelManager.getTripModel("trip_A");
ConsumerController controller = consumerGoogleMap.getConsumerController();
JourneySharingSession jsSessionA = JourneySharingSession.createInstance(tripA);
controller.showSession(jsSessionA);
地図を中央に表示し直す
マップビューまたはフラグメントがユーザーの現在地にズームされなくなる 初期化時に発生します。引き続き アクティブな移動経路の共有セッションが自動的にズームされ、 AutoCamera 機能が有効になっている必要があります。AutoCamera はデフォルトで有効になっています。
それより前のバージョンでは、次のコードを使用してカメラの中心を合わせていました。 :
consumerController.centerMapForState()
モジュラー アーキテクチャでは、次のコードを使用します。
CameraUpdate cameraUpdate = consumerController.getCameraUpdate()
if (cameraUpdate != null) {
googleMap.animateCamera(cameraUpdate);
// OR googleMap.moveCamera(cameraUpdate);
}
以前のバージョンで AutoCamera 機能を無効にするには、次のコードを使用します。
consumerController.disableAutoCamera(true);
モジュラー アーキテクチャでは、次のコードを使用します。
consumerController.setAutoCameraEnabled(false);
カスタマイズ
オンデマンド配車と配達ソリューションのカスタム FAB が地図から削除されました。
FAB に関連するメソッドも削除されました。
ConsumerController.isMyLocationFabEnabled()
ConsumerController.setMyLocationFabEnabled()