Создайте приложение с достопримечательностями

В этом руководстве подробно описаны различные функции библиотеки автомобильных приложений, которые вы можете использовать для реализации функциональности вашего приложения, отображающего точки интереса (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» . Подробные инструкции см. в разделе «Действия приложения для автомобилей» .