Прежде чем выполнять эти процедуры, убедитесь, что вы включили нужные сервисы и Consumer SDK, как описано в предыдущих разделах.
Чтобы инициализировать Consumer SDK, выполните следующие действия:
- Получение экземпляра
ConsumerAPI - Инициализация Maps SDK для запроса предпочтительного средства визуализации
Получить экземпляр ConsumerApi
Чтобы использовать Consumer SDK, вашему приложению необходимо асинхронно инициализировать синглтон ConsumerApi. Метод инициализации использует класс AuthTokenFactory, чтобы при необходимости генерировать новые токены JWT для пользователя.
providerId – это идентификатор проекта вашего облачного проекта Google Cloud. Подробную информацию о создании проекта Fleet Engine можно найти в руководстве по Fleet Engine.
В приложении должен быть реализован AuthTokenFactory, как описано в разделе Аутентификация Consumer SDK.
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 версии 2.0.0 и более поздних поддерживает Maps SDK для Android версии 18.1.0 и более поздних. В таблице ниже указано, какое средство отрисовки используется по умолчанию в разных версиях Maps SDK, и приведены сведения о поддержке обоих средств. По возможности используйте последнюю версию средства отрисовки.
Если вам нужно использовать прежнее средство отрисовки, явно укажите его с помощью MapsInitializer.initialize().
| Версия Maps SDK | Поддержка новейшего средства отрисовки | Поддержка устаревшего средства визуализации | Обработчик по умолчанию |
|---|---|---|---|
| 18.1.0 и более ранние версии | Да | Да | Устаревшие* |
| V18.2.0 | Да | Да | Новые |
* С выпуском нового средства отрисовки карт по умолчанию будет использоваться последняя версия.
Если вам необходимо использовать предпочтительный рендерер, выполняйте все операции по отрисовке пользовательского интерфейса после того, как OnMapsSdkInitializedCallback вернет результат. К операциям отрисовки интерфейса относятся следующие:
Развертывание представления, содержащего
GoogleMapViewилиConsumerMapView.Размещение маркеров на
ConsumerMapView.
Если вы не выполните эти операции после получения результата OnMapsSdkInitializedCallback, Maps SDK не назначит предпочитаемый вами генератор, и представление карты будет отрисовано генератором по умолчанию.
Инициализируйте Maps SDK перед инициализацией Consumer SDK
В классе
Applicationили классе запускаActivityвызовите метод MapsInitializer.initialize().Дождитесь результата запроса средства визуализации, прежде чем инициализировать 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. Дополнительную информацию о работе с SSL в Android можно найти в статье Поставщик услуг безопасности GMS.
В статье также приведены примеры кода для обновления поставщика услуг безопасности.