Consumer SDK を初期化する

この手順を開始する前に、 Consumer SDK と 2 つのサービスを併用できます。

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 はい はい 最新

* 新しいマップレンダラのロールアウトに伴い、最新のレンダラが あります。

優先するレンダラを使用する必要がある場合は、すべての UI レンダリング オペレーションを実行する OnMapsSdkInitializedCallback が結果を返した後。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 を使用する方法については、セキュリティ GMS をご確認ください。 プロバイダ。 この記事には、セキュリティ プロバイダにパッチを適用するためのコードサンプルも掲載されています。

次のステップ

地図をセットアップする