これらの手順を開始する前に、前のセクションで説明したように、適切なサービスと Consumer SDK が有効になっていることを確認してください。
Consumer SDK を初期化する手順は次のとおりです。
ConsumerApi
インスタンスを取得する
Consumer SDK を使用するには、アプリでシングルトンを初期化する必要があります。
ConsumerApi
を非同期で実行します。初期化メソッドは、
AuthTokenFactory
クラスを使用して、必要に応じてユーザーの新しい JWT トークンを生成します。
providerId
は、Google Cloud プロジェクトのプロジェクト ID です。詳細情報
Fleet Engine プロジェクトの作成については、以下をご覧ください。
Fleet Engine ガイドの Fleet Engine プロジェクトを作成します。
Consumer SDK に記載されているとおり、アプリに AuthTokenFactory
を実装する必要があります。
認証。
Java
Task<ConsumerApi> consumerApiTask = ConsumerApi.initialize(
this, "myProviderId", authTokenFactory);
consumerApiTask.addOnSuccessListener(
consumerApi -> this.consumerApi = consumerApi);
Kotlin
val consumerApiTask =
ConsumerApi.initialize(this, "myProviderId", authTokenFactory)
consumerApiTask?.addOnSuccessListener { consumerApi: ConsumerApi ->
this@YourActivity.consumerApi = consumerApi
}
Maps SDK と地図レンダラ
Consumer SDK v2.0.0 以降では、Maps SDK for Android v18.1.0 と
後で説明します次の表は、Maps SDK のバージョン別のデフォルトのレンダラをまとめたものです。
両方のレンダラのサポート状況が
反映されています可能であれば、最新のレンダラを使用してください。
以前のレンダラを使用する必要がある場合は、
MapsInitializer.initialize()
。
Maps SDK のバージョン | 最新のレンダラのサポート | 以前のレンダラをサポート | デフォルトのレンダラ |
---|---|---|---|
V18.1.0 以前 | ○ | ○ | レガシー* |
V18.2.0 | ○ | ○ | 最新 |
* 新しいマップレンダラのロールアウトに伴い、最新のレンダラが あります。
優先レンダラを使用しなければならない場合は、OnMapsSdkInitializedCallback
が結果を返した後に、すべての UI レンダリング オペレーションを実行します。UI レンダリング
次のオペレーションが含まれます。
GoogleMapView
またはConsumerMapView
を含むビューをインフレートする。ConsumerMapView
にマーカーを配置。
メッセージの受信後にこれらのオペレーションを実行しなかった場合、
OnMapsSdkInitializedCallback
が返された場合、Maps SDK は
マップビューはデフォルトのレンダラによってレンダリングされます。
Consumer SDK を初期化する前に Maps SDK を初期化する
Application
またはスタートアップのActivity
クラスで、次の関数を呼び出します。 MapsInitializer.initialize()レンダラのリクエストの結果を待ってから、Consumer SDK を初期化します。
詳しくは、次の例をご覧ください。
Java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initViews();
MapsInitializer.initialize(getApplicationContext(), Renderer.LATEST,
new OnMapsSdkInitializedCallback() {
@Override
public void onMapsSdkInitialized(Renderer renderer) {
switch (renderer) {
case LATEST:
Log.i("maps_renderer", "LATEST renderer");
break;
case LEGACY:
Log.i("maps_renderer", "LEGACY renderer");
break;
}
initializeConsumerSdk();
}
});
}
Kotlin
fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
initViews()
MapsInitializer.initialize(
getApplicationContext(), Renderer.LATEST,
object : OnMapsSdkInitializedCallback() {
fun onMapsSdkInitialized(renderer: Renderer?) {
when (renderer) {
LATEST -> Log.i("maps_renderer", "LATEST renderer")
LEGACY -> Log.i("maps_renderer", "LEGACY renderer")
}
initializeConsumerSdk()
}
})
}
SSL/TLS に関する注意事項
内部的には、Consumer SDK の実装は SSL/TLS を使用して、安全に通信します。
Fleet Engine サービスと統合されていますAndroid API バージョン 23 以前では、
サーバーと通信するための SecurityProvider
パッチ。Android での SSL の操作の詳細については、Security GMS Provider をご覧ください。この記事には、セキュリティ プロバイダにパッチを適用するためのコードサンプルも掲載されています。