これらの手順を開始する前に、前のセクションの説明に沿って、適切なサービスと Consumer SDK を有効にしていることを確認してください。
Consumer SDK を初期化する手順は次のとおりです。
ConsumerApi インスタンスを取得する
Consumer SDK を使用するには、アプリでシングルトン ConsumerApi を非同期で初期化する必要があります。初期化メソッドは、必要に応じてユーザーの新しい JWT トークンを生成する AuthTokenFactory クラスを受け取ります。
providerId は、Google Cloud プロジェクトのプロジェクト ID です。Fleet Engine プロジェクトの作成について詳しくは、
Fleet Engine ガイドの
Fleet Engine プロジェクトを作成するをご覧ください。
アプリでは、AuthTokenFactory を Consumer SDK
Authentication の説明に沿って実装する必要があります。
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をご覧ください。
この記事には、セキュリティ プロバイダにパッチを適用するためのコードサンプルも含まれています。