В этом руководстве подробно описаны различные функции библиотеки автомобильных приложений, которые вы можете использовать для реализации функциональности вашего приложения «Точки интереса» (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
, чтобы настроить прослушиватель в шаблоне для включения обновления списка.
В следующем фрагменте показано, как настроить прослушиватель в шаблоне:
Котлин
PlaceListMapTemplate.Builder() ... .setOnContentRefreshListener { // Execute any desired logic ... // Then call invalidate() so onGetTemplate() is called again invalidate() } .build()
Ява
new 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 Assistant с помощью действий приложения.
Включите голосовое управление своим приложением POI с помощью Ассистента, чтобы пользователи могли искать достопримечательности, спрашивая что-то вроде: «Окей, Google, найди ближайшие зарядные станции в exampleApp» . Подробные инструкции см. в разделе «Действия приложения для автомобилей» .