Consumer SDK を初期化する

これらの手順を開始する前に、前のセクションで説明したように、適切なサービスと Consumer SDK が有効になっていることを確認してください。

Consumer SDK を初期化する手順は次のとおりです。

  1. ConsumerAPI インスタンスを取得する
  2. Maps 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 を初期化する

  1. Application またはスタートアップの Activity クラスで、次の関数を呼び出します。 MapsInitializer.initialize()

  2. レンダラのリクエストの結果を待ってから、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 をご覧ください。この記事には、セキュリティ プロバイダにパッチを適用するためのコードサンプルも掲載されています。

次のステップ

地図をセットアップする