Инициализируйте потребительский 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 версии 2.0.0 и более поздних версий поддерживает Maps SDK для Android версии 18.1.0 и более поздних версий. В следующей таблице приведены рендереры по умолчанию для разных версий Maps SDK и информация о поддержке обоих рендереров. По возможности используйте последнюю версию рендерера. Если необходимо использовать устаревший рендерер, явно укажите его с помощью MapsInitializer.initialize() .

Версия Maps SDK Поддерживает последнюю версию рендерера Поддерживает устаревший рендерер Рендерер по умолчанию
V18.1.0 и ниже Да Да Наследие*
V18.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 . Статья также содержит примеры кода для установки патча для поставщика безопасности.

Что дальше?

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