En esta página, se describe cómo instalar la biblioteca de Car App y cómo configurar el archivo de manifiesto de tu app.
Cómo instalar la biblioteca de Car App
Para agregar la biblioteca a tu app, consulta la página de versiones de la biblioteca de Jetpack.
Cómo configurar los archivos del manifiesto de tu app
Antes de crear tu app para vehículos, debes configurar sus archivos de manifiesto.
Declara tu CarAppService
El host se conecta a tu app a través de tu implementación de CarAppService.
Debes declarar este servicio en el manifiesto para permitir que el host descubra tu app y se conecte a ella.
También debes declarar la categoría de tu app en el elemento <category> del filtro de intents de la app. Si quieres conocer los valores permitidos para este elemento, consulta la lista de categorías de apps compatibles.
En el siguiente fragmento de código, se muestra cómo declarar un servicio de app para vehículos para una app de lugares de interés en tu manifiesto:
<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>
Categorías de app compatibles
Cuando declares tu CarAppService como se describe en Cómo declarar tu CarAppService, también debes declarar la categoría de tu app agregando uno o más de estos valores en el filtro de intents.
androidx.car.app.category.NAVIGATION: Proporciona instrucciones de navegación paso a paso. Consulta Cómo compilar apps de navegación para automóviles.androidx.car.app.category.POI: Proporciona funcionalidad relevante para encontrar lugares de interés, como estacionamientos, estaciones de carga y gasolineras. Consulta Cómo compilar apps de lugares de interés para vehículos.androidx.car.app.category.IOT: Permite que los usuarios realicen acciones relevantes en dispositivos conectados desde el vehículo. Consulta Cómo compilar apps de Internet de las cosas para vehículos.androidx.car.app.category.WEATHER: Permite que los usuarios vean información meteorológica relevante relacionada con su ubicación actual o a lo largo de su ruta. Consulta Cómo compilar apps de clima para vehículos.androidx.car.app.category.MEDIA: Permite que los usuarios exploren y reproduzcan música, radio, audiolibros y otro contenido de audio en el automóvil. Consulta Cómo compilar apps de música basadas en plantillas para automóviles.androidx.car.app.category.MESSAGING: Permite que los usuarios se comuniquen con mensajes de texto breves. Consulta Cómo compilar experiencias de mensajería basadas en plantillas para Android Auto.androidx.car.app.category.CALLING: Permite que los usuarios se comuniquen a través de llamadas de voz. Consulta Cómo compilar experiencias de llamadas para Android Auto.
Si deseas obtener descripciones detalladas de cada categoría y los criterios necesarios para calificar para una categoría, consulta Calidad de las apps para Android para vehículos.
Especifica el nombre y el ícono de la app
Para representar tu app en la IU del sistema, carPermissionActivityLayout debe especificar un nombre y un ícono de la app para el host. Usa los atributos label y icon de tu CarAppService para especificar el nombre y el ícono de la app que usa el host para representarla:
...
<service
android:name=".MyCarAppService"
android:exported="true"
android:label="@string/my_app_name"
android:icon="@drawable/my_app_icon">
...
</service>
...
Si no declaras una etiqueta o un ícono en el elemento <service>, el host recurrirá a los valores especificados por el elemento <application>.
Cómo establecer un tema predeterminado
Para establecer un tema personalizado para tu app para vehículos, haz lo siguiente:
Agrega un elemento
<meta-data>en tu archivo de manifiesto:<meta-data android:name="androidx.car.app.theme" android:resource="@style/MyCarAppTheme />Declara tu recurso de estilo para configurar los atributos del tema de tu app para vehículos personalizada:
<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>