Прежде чем выполнять описанные ниже процедуры, убедитесь, что вы включили необходимые сервисы и Consumer SDK, как описано в предыдущих разделах.
Чтобы инициализировать Consumer SDK, выполните следующие действия:
- Получить экземпляр
ConsumerAPI - Инициализация Maps SDK для запроса предпочитаемого средства отрисовки
Как получить экземпляр ConsumerApi
Чтобы использовать Consumer SDK, вашему приложению необходимо асинхронно инициализировать синглтон ConsumerApi. Метод инициализации принимает класс AuthTokenFactory для создания новых токенов JWT для пользователя при необходимости.
providerId – это идентификатор проекта вашего облачного проекта Google Cloud. Подробнее о том, как создать проект 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 | Поддержка последней версии средства отрисовки | Поддержка устаревшего средства визуализации | Обработчик по умолчанию |
|---|---|---|---|
| V18.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. Для взаимодействия с сервером может потребоваться исправление SecurityProvider для Android API версии 23 или более ранней. Подробнее о работе с SSL в Android можно узнать в Security GMS Provider.
В статье также приведены примеры кода для исправления поставщика услуг безопасности.