Konfigurowanie projektu

Na tej stronie opisujemy, jak zainstalować bibliotekę aplikacji samochodowych i skonfigurować plik manifestu aplikacji.

Instalowanie biblioteki aplikacji samochodowych

Aby dodać bibliotekę do aplikacji, zapoznaj się ze stroną wersji biblioteki Jetpack .

Konfigurowanie plików manifestu aplikacji

Zanim utworzysz aplikację samochodową, musisz skonfigurować pliki manifestu aplikacji .

Deklarowanie usługi CarAppService

Host łączy się z Twoją aplikacją za pomocą implementacji CarAppService. Zadeklaruj tę usługę w pliku manifestu, aby host mógł wykryć Twoją aplikację i połączyć się z nią.

Musisz też zadeklarować kategorię aplikacji w elemencie <category> filtra intencji aplikacji. Listę obsługiwanych kategorii aplikacji i wartości dozwolonych w tym elemencie znajdziesz tutaj.

Ten fragment kodu pokazuje, jak zadeklarować w pliku manifestu usługę aplikacji samochodowej dla aplikacji z punktami zainteresowania:

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

Obsługiwane kategorie aplikacji

Gdy zadeklarujesz CarAppService zgodnie z opisem w Deklarowanie usługi CarAppService, musisz też zadeklarować kategorię aplikacji, dodając co najmniej 1 z tych wartości w filtrze intencji.

Szczegółowe opisy poszczególnych kategorii i kryteria, które trzeba spełnić, aby zakwalifikować się do danej kategorii, znajdziesz w artykule Jakość aplikacji na Androida dla samochodów.

Określanie nazwy i ikony aplikacji

Aby reprezentować aplikację w interfejsie systemu, carPermissionActivityLayout musi określać nazwę i ikonę aplikacji dla hosta. Aby określić nazwę i ikonę aplikacji używane przez hosta do reprezentowania Twojej aplikacji, użyj atrybutów label i icon usługi CarAppService:

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

Jeśli nie zadeklarujesz etykiety ani ikony w elemencie <service>, host użyje wartości określonych przez element <application>.

Ustawianie motywu niestandardowego

Aby ustawić motyw niestandardowy dla aplikacji samochodowej:

  1. Dodaj element <meta-data> w pliku manifestu:

    <meta-data
        android:name="androidx.car.app.theme"
        android:resource="@style/MyCarAppTheme />
    
  2. Zadeklaruj swój zasób stylu, aby ustawić atrybuty niestandardowego motywu aplikacji samochodowej:

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

Poziom interfejsu Car App API

Biblioteka aplikacji samochodowych definiuje własne poziomy interfejsu API, dzięki czemu możesz sprawdzić, które funkcje biblioteki są obsługiwane przez hosta szablonu w pojeździe. Aby pobrać najwyższy poziom interfejsu Car App API obsługiwany przez hosta, użyj getCarAppApiLevel() metody.

Zadeklaruj minimalny poziom interfejsu Car App API obsługiwany przez Twoją aplikację w pliku AndroidManifest.xml:

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

Szczegółowe informacje o zachowaniu zgodności wstecznej i deklarowaniu minimalnego poziomu interfejsu API wymaganego do korzystania z funkcji znajdziesz w dokumentacji RequiresCarApi adnotacji. Aby sprawdzić, jaki poziom interfejsu API jest wymagany do korzystania z określonej funkcji biblioteki aplikacji samochodowych, zapoznaj się z dokumentacją referencyjną dla CarAppApiLevels.