Настройте свой проект

На этой странице описано, как установить библиотеку Car App и как настроить файл манифеста для вашего приложения.

Установите библиотеку автомобильных приложений.

Чтобы добавить библиотеку в ваше приложение, см. страницу релизов библиотеки Jetpack.

Настройте файлы манифеста вашего приложения.

Прежде чем создавать автомобильное приложение, необходимо настроить файлы манифеста приложения.

Объявите свой CarAppService

Хост подключается к вашему приложению через реализацию CarAppService . Вы объявляете этот сервис в манифесте, чтобы хост мог обнаружить ваше приложение и подключиться к нему.

Также необходимо указать категорию вашего приложения в элементе <category> фильтра намерений вашего приложения. Список поддерживаемых категорий приложений содержит допустимые значения для этого элемента.

Следующий фрагмент кода показывает, как объявить службу автомобильного приложения для приложения, отображающего точку интереса, в вашем манифесте:

<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>

Поддерживаемые категории приложений

При объявлении CarAppService , как описано в разделе «Объявление CarAppService» , необходимо также объявить категорию приложения, добавив одно или несколько из этих значений в фильтр намерений.

Подробное описание каждой категории и критериев для попадания в ту или иную категорию см. в разделе «Качество Android-приложений для автомобилей» .

Укажите название приложения и значок.

Для отображения вашего приложения в системном пользовательском интерфейсе carPermissionActivityLayout должен указывать имя приложения и значок для хоста. Используйте атрибуты label и icon вашего CarAppService , чтобы указать имя приложения и значок, используемые хостом для представления вашего приложения:

...
<service
   android:name=".MyCarAppService"
   android:exported="true"
   android:label="@string/my_app_name"
   android:icon="@drawable/my_app_icon">
   ...
</service>
...

Если в элементе <service> не указана метка или значок, хост будет использовать значения, заданные элементом <application> .

Установить пользовательскую тему

Чтобы установить пользовательскую тему для вашего автомобильного приложения:

  1. Добавьте элемент <meta-data> в файл манифеста:

    <meta-data
        android:name="androidx.car.app.theme"
        android:resource="@style/MyCarAppTheme />
    
  2. Укажите ресурс стиля , чтобы задать атрибуты для вашей пользовательской темы автомобильного приложения:

    <resources>
      <style name="MyCarAppTheme">
        <item name="carColorPrimary">@color/my_primary_car_color</item>
        <item name="carColorPrimaryDark">@color/my_primary_dark_car_color</item>
        <item name="carColorSecondary">@color/my_secondary_car_color</item>
        <item name="carColorSecondaryDark">@color/my_secondary_dark_car_color</item>
        <item name="carPermissionActivityLayout">@layout/my_custom_background</item>
      </style>
    </resources>
    

Уровень API автомобильного приложения

Библиотека автомобильных приложений определяет собственные уровни API, чтобы вы могли знать, какие функции библиотеки поддерживаются хостом шаблона на вашем автомобиле. Чтобы получить самый высокий уровень API автомобильного приложения, поддерживаемый хостом, используйте метод getCarAppApiLevel() .

Укажите минимальный уровень API автомобильного приложения, поддерживаемый вашим приложением, в файле AndroidManifest.xml :

<manifest ...>
    <application ...>
        <meta-data
            android:name="androidx.car.app.minCarApiLevel"
            android:value="1"/>
    </application>
</manifest>

Подробную информацию о поддержании обратной совместимости и указании минимального уровня API, необходимого для использования той или иной функции, см. в документации к аннотации RequiresCarApi . Определение необходимого уровня API для использования той или иной функции библиотеки автомобильных приложений см. в справочной документации по CarAppApiLevels .