Инициализируйте потребительский 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 Authentication .

Ява

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() .

Версия SDK Карт Поддерживает новейший рендерер Поддерживает устаревший рендерер Средство визуализации по умолчанию
Версия 18.1.0 и ниже Да Да Наследие*
В18.2.0 Да Да Последний

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

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

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

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

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

Инициализируйте Maps SDK перед инициализацией потребительского 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 см. в разделе Поставщик безопасности GMS . Статья также содержит примеры кода для исправления поставщика безопасности.

Что дальше

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