Nesta página, descrevemos como instalar a biblioteca de apps para carro e configurar o arquivo de manifesto do seu app.
Instalar a biblioteca de apps para carro
Para adicionar a biblioteca ao app, consulte a página de versões da biblioteca do Jetpack.
Configurar os arquivos de manifesto do app
Antes de criar o app para carro, é preciso configurar os arquivos de manifesto dele.
Declarar o CarAppService
O host se conecta ao seu app usando a implementação
CarAppService.
Declare esse serviço no manifesto para permitir que o host descubra e se conecte
ao seu app.
Também é necessário declarar a categoria do app no elemento <category> do
filtro de intent. Consulte a lista de categorias de apps compatíveis para os
valores permitidos para esse elemento.
O snippet de código a seguir mostra como declarar um serviço de app para carros em um app de ponto de interesse no seu manifesto:
<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>
Categorias de apps compatíveis
Ao declarar o CarAppService, conforme descrito em
Declarar o CarAppService, também é necessário declarar a categoria do app
adicionando um ou mais desses valores no filtro de intent.
androidx.car.app.category.NAVIGATION: fornece instruções de navegação guiada. Consulte Criar apps de navegação para carros.androidx.car.app.category.POI: oferece funcionalidades relevantes para encontrar pontos de interesse, como vagas de estacionamento, estações de recarga e postos de gasolina. Consulte Criar apps de ponto de interesse para carros.androidx.car.app.category.IOT: permite que os usuários realizem ações relevantes em dispositivos conectados de dentro do carro. Consulte Criar apps de Internet das Coisas para carros.androidx.car.app.category.WEATHER: permite que os usuários vejam informações relevantes sobre o clima relacionadas ao local atual ou ao longo do trajeto. Consulte Criar apps de clima para carros.androidx.car.app.category.MEDIA: permite que os usuários naveguem e toquem músicas, rádio, audiolivros e outros conteúdos de áudio no carro. Consulte Criar apps de mídia com modelos para carros.androidx.car.app.category.MESSAGING: permite que os usuários se comuniquem com mensagens de texto curtas. Consulte Criar experiências de mensagens com modelos para o Android Auto.androidx.car.app.category.CALLING: permite que os usuários se comuniquem por chamadas de voz. Consulte Criar experiências de chamadas para o Android Auto.
Para descrições detalhadas de cada categoria e os critérios necessários para se qualificar para uma categoria, consulte Qualidade de apps Android para carros.
Especificar o nome e o ícone do aplicativo
Para representar seu app na interface do sistema, carPermissionActivityLayout precisa
especificar um nome e um ícone para o host. Use os atributos label e
icon do CarAppService para especificar o nome e o
ícone do app usados pelo host para representar seu app:
...
<service
android:name=".MyCarAppService"
android:exported="true"
android:label="@string/my_app_name"
android:icon="@drawable/my_app_icon">
...
</service>
...
Se você não declarar um rótulo ou ícone no elemento <service>, o host
usará os valores especificados pelo elemento <application>.
Definir um tema personalizado
Para definir um tema personalizado para o app de carro:
Adicione um elemento
<meta-data>ao arquivo de manifesto:<meta-data android:name="androidx.car.app.theme" android:resource="@style/MyCarAppTheme />Declare o recurso de estilo para definir os atributos do tema personalizado do app para carro:
<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>