В этом руководстве подробно описаны различные функции библиотеки автомобильных приложений, которые вы можете использовать для реализации функциональности вашего приложения, отображающего точки интереса (POI).
Укажите поддержку категорий в вашем манифесте.
Вашему приложению необходимо объявить категорию автомобильных приложений androidx.car.app.category.POI в фильтре намерений своего CarAppService .
В следующем примере показано, как объявить категорию приложения:
<application>
...
<service
...
android:name=".MyCarAppService"
android:exported="true">
<intent-filter>
<action android:name="androidx.car.app.CarAppService" />
<category android:name="androidx.car.app.category.POI"/>
</intent-filter>
</service>
...
<application>
Получите доступ к шаблонам карт.
Приложения, отображающие объекты POI, могут получить доступ к PlaceListMapTemplate и MapWithContentTemplate .
Компонент PlaceListMapTemplate специально разработан для отображения списка точек интереса (POI) рядом с картой, которая создается хостом.
Шаблон MapWithContentTemplate можно использовать для отображения списков и других типов контента рядом с картой, которая отображается вашим приложением. Более подробную информацию об использовании этого шаблона см. в разделе «Отображение карт» .
Для доступа к этим шаблонам вашему приложению необходимо объявить разрешение androidx.car.app.MAP_TEMPLATES в файле AndroidManifest.xml :
<manifest ...>
...
<uses-permission android:name="androidx.car.app.MAP_TEMPLATES"/>
...
</manifest>
Обновите содержимое PlaceListMapTemplate
Вы можете разрешить водителям обновлять контент одним нажатием кнопки во время просмотра списков мест, созданных с помощью PlaceListMapTemplate . Реализуйте метод onContentRefreshRequested интерфейса OnContentRefreshListener и используйте PlaceListMapTemplate.Builder.setOnContentRefreshListener , чтобы установить слушатель в шаблоне и включить обновление списка.
Следующий фрагмент кода показывает, как установить обработчик событий для шаблона:
return PlaceListMapTemplate.Builder() // ... .setOnContentRefreshListener { // Execute any desired logic // ... // Then call invalidate() so onGetTemplate() is called again invalidate() } .build()
Кнопка обновления отображается в заголовке PlaceListMapTemplate только в том случае, если у слушателя есть значение.
Когда пользователь нажимает кнопку обновления, вызывается метод onContentRefreshRequested вашей реализации OnContentRefreshListener . Внутри метода onContentRefreshRequested вызовите метод Screen.invalidate . Затем хост вызывает метод Screen.onGetTemplate вашего приложения, чтобы получить шаблон с обновленным содержимым. Дополнительную информацию об обновлении шаблонов см. в разделе «Обновление содержимого шаблона» . Если следующий шаблон, возвращаемый методом onGetTemplate , имеет тот же тип, он считается обновлением и не учитывается в квоте шаблонов.
Интеграция с Google Ассистентом с помощью действий приложения.
Включите голосовое управление приложением POI с помощью Google Ассистента, чтобы пользователи могли искать интересные места, задавая, например: «Привет, Google, найди ближайшие зарядные станции в ExampleApp» . Подробные инструкции см. в разделе «Действия приложения для автомобилей» .