Configura il progetto

Questa pagina descrive come installare la libreria Car App e come configurare il file manifest per la tua app.

Installa la libreria Car App

Per aggiungere la libreria alla tua app, consulta la pagina di rilascio della libreria Jetpack.

Configurare i file manifest dell'app

Prima di poter creare l'app per l'auto, devi configurare i file manifest dell'app.

Dichiarare CarAppService

L'host si connette alla tua app tramite l'implementazione di CarAppService. Dichiari questo servizio nel manifest per consentire all'host di scoprire e connettersi alla tua app.

Devi anche dichiarare la categoria dell'app nell'elemento <category> del filtro per intent dell'app. Consulta l'elenco delle categorie di app supportate per i valori consentiti per questo elemento.

Il seguente snippet di codice mostra come dichiarare un servizio di app per auto per un'app di punti di interesse nel file manifest:

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

Categorie di app supportate

Quando dichiari il tuo CarAppService come descritto in Dichiarare CarAppService, devi anche dichiarare la categoria della tua app aggiungendo uno o più di questi valori nel filtro per intent.

Per descrizioni dettagliate di ogni categoria e dei criteri richiesti per l'idoneità a una categoria, consulta la pagina Qualità delle app per Android per le auto.

Specifica il nome e l'icona dell'app

Per rappresentare la tua app nell'interfaccia utente del sistema, carPermissionActivityLayout deve specificare un nome e un'icona per l'host. Utilizza gli attributi label e icon del tuo CarAppService per specificare il nome dell'app e l'icona utilizzata dall'host per rappresentare la tua app:

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

Se non dichiari un'etichetta o un'icona nell'elemento <service>, l'host utilizza i valori specificati dall'elemento <application>.

Impostare un tema personalizzato

Per impostare un tema personalizzato per l'app per l'auto:

  1. Aggiungi un elemento <meta-data> nel file manifest:

    <meta-data
        android:name="androidx.car.app.theme"
        android:resource="@style/MyCarAppTheme />
    
  2. Dichiara la risorsa di stile per impostare gli attributi del tema personalizzato dell'app per auto:

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

Livello API Car App

La libreria di app per auto definisce i propri livelli API in modo che tu possa sapere quali funzionalità della libreria sono supportate dall'host del modello su un veicolo. Per recuperare il livello API Car App più elevato supportato da un host, utilizza il metodo getCarAppApiLevel.

Dichiara il livello API Car minimo supportato dalla tua app nel file AndroidManifest.xml:

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

Per informazioni dettagliate su come mantenere la compatibilità con le versioni precedenti e dichiarare il livello API minimo richiesto per utilizzare una funzionalità, consulta la documentazione relativa all'annotazione RequiresCarApi. Per una definizione del livello API richiesto per utilizzare una determinata funzionalità della libreria di app per auto, consulta la documentazione di riferimento per CarAppApiLevels.