В этом руководстве рассказывается о различных функциях библиотеки приложений для автомобилей, которые можно использовать для реализации функций приложения, связанных с объектами инфраструктуры.
Как объявить поддержку категорий в манифесте
В фильтре интентов элемента CarAppService вашего приложения должна быть объявлена категория автомобильного приложения.androidx.car.app.category.POI
Ниже приведен пример того, как объявить категорию приложения:
<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>
Как получить доступ к шаблонам карт
Приложения для работы с достопримечательностями могут получать доступ к PlaceListMapTemplate и MapWithContentTemplate.
Элемент PlaceListMapTemplate предназначен для показа списка объектов вместе с картой, которая отрисовывается хостом.
Шаблон 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, относится к тому же типу, он считается обновлением и не учитывается в квоте шаблонов.
Как интегрировать приложение с Gemini или Google Ассистентом с помощью действий в приложениях
Добавьте в приложение для поиска достопримечательностей поддержку голосовых команд с помощью Gemini или Google Ассистента, чтобы пользователи могли искать интересные места, например, с помощью запроса Окей, Google, найди ближайшие зарядные станции в приложении"Пример". Подробные инструкции приведены в статье Действия в приложениях для автомобилей.