Инициализируйте потребительский SDK

Перед началом этих процедур убедитесь, что вы включили соответствующие службы и Consumer SDK, как описано в предыдущих разделах.

Чтобы инициализировать Consumer SDK, выполните следующие действия:

  1. Получить экземпляр ConsumerAPI
  2. Инициализируйте Maps SDK для запроса предпочтительного рендерера

Получить экземпляр ConsumerApi

Чтобы использовать Consumer SDK, вашему приложению необходимо асинхронно инициализировать синглтон ConsumerApi . Метод инициализации использует класс AuthTokenFactory для генерации новых токенов JWT для пользователя при необходимости.

providerId — это идентификатор вашего проекта Google Cloud. Для получения дополнительной информации о создании проекта Fleet Engine см. раздел Создание проекта Fleet Engine в руководстве Fleet Engine.

Ваше приложение должно реализовывать AuthTokenFactory , как описано в разделе Аутентификация Consumer SDK .

Ява

Task<ConsumerApi> consumerApiTask = ConsumerApi.initialize(
    this, "myProviderId", authTokenFactory);

consumerApiTask.addOnSuccessListener(
  consumerApi -> this.consumerApi = consumerApi);

Котлин

val consumerApiTask =
  ConsumerApi.initialize(this, "myProviderId", authTokenFactory)

consumerApiTask?.addOnSuccessListener { consumerApi: ConsumerApi ->
  this@YourActivity.consumerApi = consumerApi
}

Maps SDK и рендереры карт

Consumer SDK v2.0.0 и более поздние версии поддерживают Maps SDK для Android v18.1.0 и более поздние версии. В следующей таблице приведены рендереры по умолчанию по версии Maps SDK и поддерживаемость обоих рендереров. Если возможно, используйте последний рендерер. Если вам необходимо использовать устаревший рендерер, явно укажите его с помощью MapsInitializer.initialize() .

Версия SDK Карт Поддерживает новейший рендерер Поддерживает устаревший рендерер Рендерер по умолчанию
V18.1.0 и ниже Да Да Наследие*
В18.2.0 Да Да Последний

* С выходом нового рендерера карт последний рендерер будет использоваться по умолчанию.

Если вам необходимо использовать предпочтительный рендерер, запустите все операции рендеринга пользовательского интерфейса после того, как OnMapsSdkInitializedCallback вернет результат. Операции рендеринга пользовательского интерфейса включают в себя следующие операции:

  • Расширение представления, содержащего GoogleMapView или ConsumerMapView .

  • Размещение маркеров на ConsumerMapView .

Если вы не выполните эти операции после получения результата OnMapsSdkInitializedCallback , Maps SDK не выделит ваш предпочтительный рендерер, и вместо этого вид карты будет отрисован рендерером по умолчанию.

Инициализируйте Maps SDK перед инициализацией Consumer SDK

  1. В вашем Application или стартовом классе Activity вызовите MapsInitializer.initialize()

  2. Дождитесь результата запроса рендерера перед инициализацией Consumer SDK.

Подробности смотрите в следующих примерах.

Ява

@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();
        }
      });
}

Котлин

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 для взаимодействия с сервером. Для получения дополнительной информации о работе с SSL в Android см. Security GMS Provider . Статья также содержит примеры кода для исправления поставщика безопасности.

Что дальше?

Настроить карту