App para carro

Criar apps de navegação, estacionamento e carregamento para o Android Auto.
Atualização mais recente Versão estável atual Próximo candidato a lançamento Versão Beta Versão Alfa
3 novembro de 2021 1.0.0 1.1.0-rc01 - 1.2.0-alpha01

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.0.0"

    // For testing
    implementation "androidx.car.app:app-testing:1.1.0-beta01"
}

Kotlin

dependencies {
    implementation("androidx.car.app:app:1.0.0")

    // For testing
    implementation("androidx.car.app:app-testing:1.1.0-beta01")
}

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 existente clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.2

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

  • 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 em Pane (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 e RoutePreviewNavigationTemplate (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-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 na API

  • 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 o TestCarContext 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 no CarAppExtender (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 do Desktop 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 na API

  • Os métodos de ciclo de vida SessionController e ScreenController foram consolidados em um único método moveToState (I1ed00).
  • Novo recurso: CarContext#getHostInfo() (I8977e).
  • Campos descontinuados foram removidos (I67168).
  • SessionController e ScreenController foram atualizados para expor construtores diretamente (Iabf22).
  • PinSignInMethod.Builder e ProviderSignInMethod.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 como OnCarDataAvailableListener (I518ca).
  • Os nomes de método CarInfo, Speed e Mileage e o javadoc foram atualizados (I86672).
  • Renomeação de Toll como TollCard (I3e7c8).
  • O PinSignInMethod.getPin descontinuado foi removido e substituído pelo PinSignInMethod.getPinCode (I996ce).
  • O OnInputCompletedListener foi removido e substituído pelo InputCallback (Ib5be1).
  • O PinSignInMethod mudou para usar CharSequence em vez de String (I275d5).

Correções de bugs

  • Correções do Javadoc para hardware de carro (I2abbc).

Contribuição externa

Problemas conhecidos

  • No SignInTemplate, o uso do InputSignInMethod pode resultar em uma NullPointerException 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 e LongMessageTemplate 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 na API

  • Todos os métodos de interface *Callback foram padronizados e renomeados como OnRequestPermissionsCallback -> 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).
  • Adição de compatibilidade com ActionStrip em MessageTemplate (Ida657).
  • setLoading foi adicionado ao grupo MessageTemplate (I2a4b5).
  • ConnectionToCar foi renomeado como CarConnection (Ife9bd).
  • Mudança em NavigationTemplate para retornar um PanModeDelegate 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 compatibilidade com a definição de um botão para uma Action e inclusão do tipo de movimentação Action (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).
  • Inclusão do modo de movimentação e API de ações do mapa 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).
  • Anotação RequiresCarApi(2) 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 PendingIntents 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 e LongMessageTemplate 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 um Session é observado após um Screen de ON_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 com ForegroundColorSpan 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 novo SessionController 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 um Session é observado após um Screen de ON_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 chamada stopNavigation 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

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