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