Este guia detalha os diferentes recursos da biblioteca Car App que podem ser usados para implementar a funcionalidade do seu app de ponto de interesse (PDI).
Declarar suporte à categoria no manifesto
Seu app precisa declarar a androidx.car.app.category.POI
categoria do app para carros
no filtro de intent da classe
CarAppService.
O exemplo a seguir mostra como declarar a categoria do app:
<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>
Acessar os modelos de mapa
Os apps de PDI podem acessar o
PlaceListMapTemplate
e MapWithContentTemplate.
O PlaceListMapTemplate foi projetado especificamente para mostrar uma lista de PDIs e um mapa renderizado pelo host.
O MapWithContentTemplate pode ser usado para mostrar listas e outros tipos de
conteúdo ao lado de um mapa renderizado pelo app. Consulte
Desenhar mapas para mais detalhes sobre o uso desse
modelo.
Para acessar esses modelos, seu app precisa declarar a permissão androidx.car.app.MAP_TEMPLATES no arquivo AndroidManifest.xml:
<manifest ...>
...
<uses-permission android:name="androidx.car.app.MAP_TEMPLATES"/>
...
</manifest>
Atualizar conteúdo do PlaceListMapTemplate
Você pode oferecer aos motoristas uma maneira de atualizar o conteúdo tocando em um botão enquanto
navegam em listas de lugares criadas com
PlaceListMapTemplate.
Implemente o
OnContentRefreshListener
da interface onContentRefreshRequested
e use
PlaceListMapTemplate.Builder.setOnContentRefreshListener
para definir o listener no modelo e ativar a atualização da lista.
O snippet a seguir mostra como definir o listener no modelo:
return PlaceListMapTemplate.Builder() // ... .setOnContentRefreshListener { // Execute any desired logic // ... // Then call invalidate() so onGetTemplate() is called again invalidate() } .build()
O botão de atualização só aparece no cabeçalho do PlaceListMapTemplate quando o listener tem um valor.
Quando o usuário clica no botão, o
método onContentRefreshRequested
da implementação do seu OnContentRefreshListener
é chamado. No
onContentRefreshRequested, chame o
Screen.invalidate
método. Em seguida, o host vai chamar o método
Screen.onGetTemplate
do app para recuperar o modelo com o conteúdo atualizado. Consulte Atualizar o
conteúdo de um modelo para mais informações sobre
a atualização de modelos. Contanto que o próximo modelo retornado por onGetTemplate
seja do mesmo tipo, ele será contabilizado como uma atualização, e não na
cota do modelo.
Integrar com o Google Assistente usando as Ações no app
Ative por voz o app de PDI usando o Google Assistente para que os usuários possam pesquisar pontos de interesse fazendo pedidos como "Ok Google, encontre estações de recarga por perto no ExampleApp". Para conferir instruções detalhadas, consulte Ações no app para carros.