Прежде чем приступить к этим процедурам, убедитесь, что вы включили соответствующие службы и Consumer SDK, как описано в предыдущих разделах.
Чтобы инициализировать Consumer SDK, выполните следующие действия:
- Получите экземпляр
ConsumerAPI
- Инициализируйте 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.
В классе
Application
или запускаActivity
вызовите MapsInitializer.initialize().Прежде чем инициализировать 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 . Статья также содержит примеры кода для исправления поставщика безопасности.