App para carro
Atualização mais recente | Versão estável | Candidata a lançamento | Versão Beta | Versão Alfa |
---|---|---|---|---|
23 de março de 2022 | 1.1.0 | 1.2.0-rc01 | - | - |
Declarar dependências
Para adicionar uma dependência à Biblioteca Car App, é preciso adicionar o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.
Adicione as dependências dos artefatos necessários no arquivo build.gradle
para
seu app ou módulo:
Groovy
dependencies { implementation "androidx.car.app:app:1.1.0" // For Android Auto specific functionality implementation "androidx.car.app:app-projected:1.1.0" // For Android Automotive specific functionality implementation "androidx.car.app:app-automotive:1.1.0" // For testing testImplementation "androidx.car.app:app-testing:1.2.0-rc01" }
Kotlin
dependencies { implementation("androidx.car.app:app:1.1.0") // For Android Auto specific functionality implementation("androidx.car.app:app-projected:1.1.0") // For Android Automotive specific functionality implementation("androidx.car.app:app-automotive:1.1.0") // For testing testImplementation("androidx.car.app:app-testing:1.2.0-rc01") }
Para ver mais informações sobre dependências, consulte Adicionar dependências de build.
Feedback
Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.
Consulte a documentação do Issue Tracker para saber mais.
Versão 1.2
Versão 1.2.0-rc01
23 de março de 2022
Lançamento de androidx.car.app:app-*:1.2.0-rc01
. A versão 1.2.0-rc01 contém estas confirmações.
- Esta é uma versão de estabilização. Não há mudanças de API em comparação com a
v1.2.0-beta02
. Foram adicionados novos recursos experimentais (API de nível 5) destinados a versões futuras do Android Auto e do Android Automotive.
Correções de bugs
- Correção de uma exceção que acontece quando a pilha de telas é modificada após o
State.DESTROYED
(I3c8eb). - A API
CarSensors
foi atualizada para indicar que não foi implementada para o AAOS (Idd57b). - Atualização de
PlaceListMapTempalte.Builder#setCurrentLocationEnabled
para indicar que ACCESS_COARSE_LOCATION seria suficiente para o recurso (I510c2). - O número de saídas é opcional para os tipos de manobra na rotatória (Ife7d1).
Versão 1.2.0-beta02
26 de janeiro de 2022
Lançamento de androidx.car.app:app-*:1.2.0-beta02
. A versão 1.2.0-beta02 contém estas confirmações.
Os apps para carros criados com essa versão da biblioteca destinada à plataforma Android Automotive OS
agora podem ser publicados no canal de teste aberto da Play Store. Consulte o guia de desenvolvimento para ver mais detalhes.
Recursos anotados com API de nível 4 ou anterior são compatíveis com o Android Auto
7.2 e mais recentes e a nova plataforma do Android Automotive OS
. Consulte a seção Known Issues
abaixo para ver os detalhes.
Mudanças em APIs
- A API experimental
setOnContentRefreshListener
foi adicionada aos modelos de PDIs (I6bf22).
Correções de bugs
- Um vazamento de memória em
CarAppService
quando o host do carro é desvinculado foi corrigido (I5c9ca, b/203594731). CarAppActivity
foi atualizada a fim de incluir requisitos para o modo de inicialização singleTask (Id2f95).- A falha visual na retomada foi reduzida (Iff7e0).
Problemas conhecidos
- As
ActionStrip
s do mapa noPlaceListNavigationTemplate
e noRoutePreviewNavigateTemplate
vão começar a ser disponibilizadas nas próximas versões doAndroid Auto
e doAndroid Automotive OS
.
Versão 1.2.0-alpha02
15 de dezembro de 2021
Lançamento de androidx.car.app:app-*:1.2.0-alpha02
. A versão 1.2.0-alpha02 contém estas confirmações.
Os recursos anotados com a API de nível 4 foram atualizados de "experimental" para "estável", incluindo as ActionStrip
s do mapa no PlaceListNavigationTemplate
e RoutePreviewNavigateTemplate
, a imagem CarIcon
nos Pane
s, o QRCodeSignInMethod
e a capacidade de definir dicas de renderização (como sinalizações) nas Action
s.
Novos recursos
- No Android Auto 7.1 e em versões mais recentes, o limite de itens no
Pane
foi aumentado de 2 para 4.
Mudanças em APIs
- Um método
toString()
experimental foi adicionado àCarUnit
(I36a3b).
Correções de bugs
- Correção de uma falha que ocorria na
CarAppPermissionActivity
quando o callback era desativado (If9823). - Mudança do limite de listas padrão do
Pane
para 4 (I0068b).
Versão 1.2.0-alpha01
3 novembro de 2021
Lançamento de androidx.car.app:app-*:1.2.0-alpha01
. A versão 1.2.0-alpha01 contém estas confirmações.
No momento, todos os novos recursos da v1.2.0
(API de nível 4 ou mais recente) são experimentalmente voltados para versões futuras do Android Auto e Android Automotive OS. Consulte o guia de desenvolvimento para ver mais detalhes.
Mudanças em APIs
- A API
AutomotiveCarInfo
foi transformada em experimental (Ia13e5). - A API Car App Library de nível 4 foi adicionada (I2a2e7).
- API de nível 4: foi adicionado suporte à definição de um
CarIcon
emPane
(Ifcc12). - API de nível 4: foi adicionado um método de login por código QR (Ib623e).
- API de nível 4: set/getFlags foi adicionado a
Action
(Ic03ab). - API de nível 4: foi adicionado suporte às funções de movimentar e de aumentar zoom no
PlaceListNavigationTemplate
eRoutePreviewNavigationTemplate
(I9d8a3).
Correções de bugs
- API de nível 4: foi adicionado um mecanismo para permitir que apps enviem atualizações de local ao host do carro (I3bad3).
- Foi corrigido um problema em que a lógica de validação do host não encontrava a permissão TEMPLATE_RENDERER corretamente (I62618).
Versão 1.1.0
Versão 1.1.0
15 de dezembro de 2021
Lançamento de androidx.car.app:app-*:1.1.0
. A versão 1.1.0 contém estas confirmações.
Esta é uma versão de estabilização. Não há mudanças em comparação com a v1.1.0-rc01
. Consulte também as notas da versão da v1.2.0-alpha02
para ver mais detalhes sobre os novos recursos da biblioteca de apps para carros.
Mudanças importantes desde a versão 1.0.0
- API de nível 2: adição de
SignInTemplate
eLongMessageTemplate
, que podem ser usados para fluxos de login quando o veículo está estacionado. - API de nível 2: suporte à interação com mapas no
NavigationTemplate
. - API de nível 2: suporte a mensagens de texto de vários tamanhos para permitir que os apps forneçam várias versões da string para exibição, dependendo do tamanho da tela do carro.
- API de nível 3: adição de uma classe
CarHardwareManager
, que pode ser usada para consultar dados de hardware do veículo, como modelo e marca, níveis de combustível e outros sensores.
Versão 1.1.0-rc01
3 novembro de 2021
Lançamento de androidx.car.app:app-*:1.1.0-rc01
. A versão 1.1.0-rc01 contém estas confirmações.
Esta é uma versão de estabilização. Não há mudanças de API em comparação com a v1.1.0-beta01
. Foram adicionados novos recursos experimentais (API de nível 4) destinados a versões futuras do Android Auto. Consulte as notas da versão da v1.2.0-alpha01
para ver mais detalhes sobre as APIs experimentais.
Versão 1.1.0-beta01
1º de setembro de 2021
Lançamento de androidx.car.app:app-*:1.1.0-beta01
. A versão 1.1.0-beta01 contém estas confirmações.
Todos os recursos da v1.1.0
(API 2 e acima) são totalmente compatíveis com o Android Auto 6.7 e versões mais recentes. Consulte o guia de desenvolvimento para ver mais detalhes.
Mudanças em APIs
- Remoção do
Manager
como interface pública (Ie381b). - Nova capacidade de definir um plano de fundo personalizado da marca para uma solicitação de permissão (I74b76).
ScreenManager.getStackSize
foi adicionado (I0b16a).- Remoção do construtor
ScreenController
que usa oTestCarContext
de forma explícita (Iefebc).
Correções de bugs
- Foi acrescentada a verificação de nível de API ao criar o
CarHardwareManager
(I48f9b). - Novas verificações de uso inválido do
CarSpan
em toda a API (I65ae6). - Correção de um problema em que, se uma
Screen
fosse marcada como concluída durante a criação, a pilha ficaria em um estado corrompido (I81b13). - Correção de um problema em que o
CarNotificationManager.notify
registraria um erro para o AutomotiveOS se houvesse ações com ícones noCarAppExtender
(I3633d). - Novo método de handshake para o app e o host estabelecerem uma versão da API (I7d6f8).
Versão 1.1.0-alpha02
21 de julho de 2021
Lançamento de androidx.car.app:app-*:1.1.0-alpha02
. A versão 1.1.0-alpha02 contém estas confirmações.
Novos recursos
- API de nível 3: foi adicionado um
CarHardwareManager
que pode ser usado para consultar dados de hardware do veículo, como modelo e marca, níveis de combustível e outros sensores. Atualmente, esse recurso está disponível apenas para o Android Auto 6.7 ou versões mais recentes no canal de teste aberto. Para fazer esse teste em um ambiente de computador, é necessário lançar uma nova versão doDesktop Head Unit
separadamente. Fique de olho na página Testar apps Android para carros para ver detalhes de quando a nova versão estará disponível. - Siga o guia de desenvolvimento e a referência da biblioteca para ter mais informações e diretrizes sobre como usar esses recursos em hosts de carro compatíveis com API de nível 3.
Mudanças em APIs
- Os métodos de ciclo de vida
SessionController
eScreenController
foram consolidados em um único métodomoveToState
(I1ed00). - Novo recurso:
CarContext#getHostInfo()
(I8977e). - Campos descontinuados foram removidos (I67168).
SessionController
eScreenController
foram atualizados para expor construtores diretamente (Iabf22).PinSignInMethod.Builder
eProviderSignInMethod.Builder
foram removidos (I9f0cb).- "setCarAppResult()" foi adicionado para permitir o uso de apps de modelo "para resultado" no AAOS (I37741).
- As interfaces
CarHardware
receberam anotação@MainThread
(Ib2f85). OnCarDataListener
foi renomeado comoOnCarDataAvailableListener
(I518ca).- Os nomes de método
CarInfo
,Speed
eMileage
e o javadoc foram atualizados (I86672). - Renomeação de
Toll
comoTollCard
(I3e7c8). - O
PinSignInMethod.getPin
descontinuado foi removido e substituído peloPinSignInMethod.getPinCode
(I996ce). - O
OnInputCompletedListener
foi removido e substituído peloInputCallback
(Ib5be1). - O
PinSignInMethod
mudou para usarCharSequence
em vez deString
(I275d5).
Correções de bugs
- Correções do Javadoc para hardware de carro (I2abbc).
Contribuição externa
Problemas conhecidos
- No
SignInTemplate
, o uso doInputSignInMethod
pode resultar em umaNullPointerException
no host do carro. Isso será abordado na próxima versão da biblioteca. Para resolver o problema, inclua esta linha na configuração do Proguard do seu app:-keep class androidx.car.app.model.signin.InputSignInMethod { *; }
Versão 1.1.0-alpha01
16 de junho de 2021
Lançamento de androidx.car.app:app:1.1.0-alpha01
, androidx.car.app:app-automotive:1.1.0-alpha01
e androidx.car.app:app-testing:1.1.0-alpha01
. A versão 1.1.0-alpha01 contém estas confirmações.
Novos recursos
- API de nível 2: novos
SignInTemplate
eLongMessageTemplate
que podem ser usados para fluxos de login quando o veículo estiver estacionado. - API de nível 2: nova compatibilidade com a interação com o mapa no
NavigationTemplate
. - API de nível 2: nova compatibilidade com mensagens de texto de vários tamanhos para permitir que os apps forneçam várias versões da string para exibição, dependendo do tamanho da tela do carro.
- Siga o guia de desenvolvimento e a biblioteca Javadoc para ver mais informações e diretrizes sobre como usar esses recursos em hosts de carro compatíveis com API de nível 2.
Mudanças em APIs
- Todos os métodos de interface
*Callback
foram padronizados e renomeados comoOnRequestPermissionsCallback
->OnRequestPermissionsListener
(Ibb3ec9). - As classes
androidx.car.app.hardware
foram atualizadas para remover builders e classes de parâmetros desnecessários (I67beb) - Adição de classes
androidx.car.app.hardware
para acesso a dados específicos do carro, como combustível, bateria e velocidade (Iff3c9). - Foi adicionado suporte à
ActionStrip
emMessageTemplate
(Ida657). setLoading
foi adicionada ao grupoMessageTemplate
(I2a4b5).ConnectionToCar
foi renomeado comoCarConnection
(Ife9bd).- Mudança em
NavigationTemplate
para retornar umPanModeDelegate
explícito (I13877). - Atualização da ordem dos parâmetros para
CarContext.requestPermissions
(Ib890a). - Atualização da chave de metadados para definir o nível mínimo da API do carro para
androidx.car.api.minCarApiLevel
(Ib0d41). - Criação de uma API que permite observar o estado da conexão do carro (Ifc935).
- Inclusão de suporte para a definição de um botão para uma
Action
e inclusão do tipo de movimentaçãoAction
(Ica6af). - Criação de
CarNotificationManager
para oferecer compatibilidade com o envio de notificações no carro (I10d7a). - Inclusão de
ConstraintManager
para definir limites de lista do host (I8690e). - O modo de movimentação e a API Map Action Strip foram adicionados em
NavigationTemplate
(I77aa6). - Inclusão da API pan e zoom em
SurfaceCallback
para apps de navegação (Id5e9d). - Atualização de
CarAppApiLevel
para 2 (Ic1540). - Adição de capacidade de solicitar permissões em um
CarAppService
(I5421e). - A anotação
RequiresCarApi(2)
foi adicionada à API de vários textos (Iacb62). - São permitidas diversas variantes de texto no título do modelo de meia lista (Ib8df7).
- Um novo
LongMessageTemplate
foi adicionado (requer nível 2 da API Car) (Ic5cee).
Correções de bugs
- Requisitos de tamanho da imagem atualizados para representar telas de automóveis maiores (I116dc).
- Não é permitido adicionar mais de duas ações em corpos de modelo (I32157).
- Garantida a criação de
PendingIntent
s nas sinalizações do conjunto da biblioteca de apps do carro (If84fe, b/186394900). - Javadoc atualizado para permitir mudanças no texto de
Row
, como atualizações (If3f9c). androidx.activity:activity:1.2.0
agora é uma dependência de API (Id1cb9).SignInTemplate
eLongMessageTemplate
foram criados para exigir ações no corpo deles somente quando o carro estiver estacionado e atualizar a documentação para indicar que só serão exibidos quando o carro estiver estacionado (Iddaa9).- Correção de uma exceção que ocorre ao exibir uma
Screen
durante a inicialização (Ifcf40, b/184664896) - Cor de texto personalizada permitida em
ForegroundCarColorSpan
(I69e59) - Correção de um problema em que
ON_DESTROY
em umSession
é observado após umScreen
deON_DESTROY
(I52e01, b/183696617) - O javadoc atualizado foi ativado ao definir o tempo restante de um
TravelEstimate
para um horário desconhecido (I99610, b/183632456). - Atualização de
Action
para oferecer compatibilidade comForegroundColorSpan
no título e em qualquer cor de fundo personalizada (I578e4). NavigationManagerCallback#onStopNavigation
não é executado se o callback for apagado antes da execução do executor (I7fc5e, b/181143772).- Correção de um problema que exigia que o app assumisse explicitamente uma dependência em lifecycle-common-java8 (I8b8c8).
Problemas conhecidos
- No
SignInTemplate
, o teclado na tela mostra um ícone de pesquisa em vez de um ícone de enviar quando o usuário quer confirmar a entrada. Como alternativa, os usuários podem acessar o teclado do smartphone, que é ativado quando o campo de entrada está em foco. - No Android Auto versão 6.5, os callbacks de movimentação e zoom em
SurfaceCallback
podem ser invocados incorretamente com alguns gestos de toque.
Car App Testing versão 1.0.0
Versão 1.0.0-alpha01
24 de março de 2021
Lançamento de androidx.car.app:app-testing:1.0.0-alpha01
. A versão 1.0.0-alpha01 contém estas confirmações.
Essa é a primeira versão do Jetpack da biblioteca de teste código fechado anterior. Consulte nossos exemplos (link em inglês) para usar essa biblioteca nos seus testes.
Novos recursos
- Os controladores das classes de modelo foram removidos. Getters de modelo agora fazem parte da superfície da API pública, que permite validar valores que foram definidos nos builders.
- O
CarAppServiceController
anterior foi substituído pelo novoSessionController
para testar a lógica relacionada à vida útil da conexão com o host.
Versão 1.0.0
Versão 1.0.0
21 de abril de 2021
Lançamento de androidx.car.app:app:1.0.0
. A versão 1.0.0 contém estas confirmações.
Principais recursos de 1.0.0
- No início de abril, anunciamos que os apps podem começar a publicar no canal de produção usando
androidx.car.app:app:1.0.0-rc01
. A Biblioteca Car App v1.0.0 agora é estável e totalmente compatível com o Android Auto 6.1 e versões mais recentes. - Siga o guia de desenvolvimento para ver detalhes sobre como criar apps de navegação, estacionamento e carregamento para o Android Auto usando a biblioteca.
Correções de bugs
- Correção de uma exceção que ocorre ao exibir um
Screen
durante o início (70aae1, b/184664896) - Correção de um problema em que
ON_DESTROY
em umSession
é observado após umScreen
deON_DESTROY
(0cebor, b/183696617)
Versão 1.0.0-rc01
24 de março de 2021
Lançamento de androidx.car.app:app:1.0.0-rc01
. A versão 1.1.0-rc01 contém estas confirmações.
Correções de bugs
- Um bug de disputa em que o
NavigationManagerCallback#onStopNavigation
estava sendo chamado depois que o callback era apagado foi corrigido. Isso acontecia se o callback fosse apagado antes do executor do callback ser realmente executado (I7fc5e, b/181143772). - Um problema que exigia a inicialização explícita de uma dependência do
lifecycle-common-java8
foi corrigido (I8b8c8). - Uma
NullPointerException
que era gerada quando o app recebia uma chamadastopNavigation
quando já tinha removido um callback foi corrigida (Ib8b89, b/181143772). - Melhorias para não enviar chamadas para o app se o ciclo de vida não estiver em um estado
CREATED
(I86965, b/179800224, b/177921120). - Um problema em que uma API mínima inválida especificada no manifesto do app gerava uma falha e causava um ANR no host (Iffedd, b/174231592).
Versão 1.0.0-beta01
24 de fevereiro de 2021
Lançamento do androidx.car.app:app:1.0.0-beta01
. A versão 1.0.0-beta01 contém estas confirmações.
Essa é a primeira versão do Jetpack da biblioteca de código fechado anterior e é compatível com o Android Auto 6.1 ou versões mais recentes. Siga o guia de desenvolvimento para mais detalhes sobre como criar apps para carros usando a biblioteca.
Novos recursos
- Introdução de um
GridTemplate
que seu app pode usar para exibir uma lista de elementos da IU em um layout de grade. - Adição de um método
CarAppService.createHostValidator
para confirmar que uma conexão de host é de fonte confiável (por exemplo, Android Auto). - Adicionamos uma API
CarAppExtender.Builder.setColor
(b/174231592).
Correções de bugs
- Correção de um problema em que a
Screen
errada era retomada ao exibir as telas em sequência (b/177590791).