App para vehículos

Cómo compilar apps de carga, navegación y estacionamiento para Android Auto.
Actualización más reciente Versión estable actual Próxima versión potencial Versión beta Versión alfa
1 de septiembre de 2021 1.0.0 - 1.1.0-beta01 -

Cómo declarar dependencias

Para agregar una dependencia en la biblioteca de la app para vehículos, debes agregar el repositorio de Maven de Google a tu proyecto. Lee el repositorio Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o 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 obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes en esta biblioteca antes de crear uno nuevo. Para agregar tu voto a un error existente, haz clic en el botón de la estrella.

Cómo crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Versión 1.1.0

Versión 1.1.0-beta01

1 de septiembre de 2021

Lanzamiento de androidx.car.app:app-*:1.1.0-beta01. La versión 1.1.0-beta01 contiene estas confirmaciones.

Todas las funciones de v1.1.0 (nivel de API 2 o posterior) son totalmente compatibles con Android Auto 6.7 y versiones posteriores. Consulta la guía para desarrolladores a fin de obtener más detalles.

Cambios en la API

  • Se quitó Manager como interfaz pública. (Ie381b)
  • Se agregó la capacidad de establecer un fondo de marca personalizado para la solicitud de permisos. (I74b76)
  • Se agregó ScreenManager.getStackSize. (I0b16a)
  • Se quitó el constructor ScreenController, que toma explícitamente TestCarContext. (Iefebc)

Correcciones de errores

  • Se agregó la verificación del nivel de API cuando se crea CarHardwareManager. (I48f9b)
  • Se agregaron verificaciones de usos de CarSpan no válidos en la API. (I65ae6).
  • Se solucionó un problema por el que, si se marcaba Screen como finalizado durante su creación, dejaba la pila en un estado dañado. (I81b13)
  • Se solucionó un problema por el que CarNotificationManager.notify registraba un error para AutomotiveOS si había acciones con íconos en CarAppExtender. (I3633d)
  • Se agregó un método de protocolo de enlace para que la app y el host establezcan una versión de API. (I7d6f8)

Versión 1.1.0-alpha02

21 de julio de 2021

Lanzamiento de androidx.car.app:app-*:1.1.0-alpha02. La versión 1.1.0-alpha02 contiene estas confirmaciones.

Nuevas funciones

  • Nivel de API 3: Se agregó un CarHardwareManager que se puede usar para consultar datos de hardware de los vehículos, como el modelo y la marca, los niveles de combustible y otros sensores. Actualmente, esta función solo está disponible para Android Auto 6.7 y versiones posteriores en el canal de pruebas abiertas. Para probarla en un entorno de escritorio, se requiere una versión nueva de Desktop Head Unit, que se lanzará por separado. Consulta la página Cómo probar apps de Android para vehículos a fin de obtener información detallada sobre cuándo habrá una versión nueva disponible.
  • Sigue la guía para desarrolladores y la referencia sobre la biblioteca para obtener detalles adicionales y lineamientos de diseño sobre el uso de estas funciones en hosts de vehículos que son compatibles con el nivel de API 3.

Cambios en la API

  • Se consolidaron los métodos de ciclo de vida SessionController y ScreenController en un solo método moveToState. (I1ed00)
  • Se agregó CarContext#getHostInfo(). (I8977e)
  • Se quitaron los campos obsoletos. (I67168)
  • Se actualizaron SessionController y ScreenController para exponer los constructores de forma directa. (Iabf22)
  • Se quitaron PinSignInMethod.Builder y ProviderSignInMethod.Builder. (I9f0cb)
  • Se agregó "setCarAppResult()" a fin de habilitar el uso de apps basadas en plantillas "para obtener un resultado" en AAOS. (I37741)
  • Se anotaron las interfaces de CarHardware con @MainThread. (Ib2f85)
  • Se cambió el nombre de OnCarDataListener a OnCarDataAvailableListener. (I518ca)
  • Se cambiaron los nombres de los métodos CarInfo, Speed y Mileage, y se actualizó javadoc. (I86672)
  • Se cambió el nombre de Toll a TollCard. (I3e7c8)
  • Se quitó el objeto PinSignInMethod.getPin obsoleto que se reemplazó por PinSignInMethod.getPinCode. (I996ce)
  • Se quitó OnInputCompletedListener (se reemplazó con InputCallback). (Ib5be1)
  • Se cambió PinSignInMethod para que tome CharSequence en lugar de String. (I275d5)

Correcciones de errores

  • Se implementaron correcciones de Javadoc para el hardware de autos. (I2abbc)

Contribución externa

Errores conocidos

  • El uso de InputSignInMethod dentro de SignInTemplate puede generar una NullPointerException en el host del vehículo. Este tema se abordará en la próxima versión de la biblioteca. Para solucionar este problema, incluye la siguiente línea en la configuración de ProGuard de tu app: -keep class androidx.car.app.model.signin.InputSignInMethod { *; }

Versión 1.1.0-alpha01

16 de junio de 2021

Lanzamiento de androidx.car.app:app:1.1.0-alpha01, androidx.car.app:app-automotive:1.1.0-alpha01 y androidx.car.app:app-testing:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Nivel de API 2: SignInTemplate y LongMessageTemplate nuevas que se pueden usar para flujos de acceso cuando el vehículo está estacionado
  • Nivel de API 2: Compatibilidad nueva con la interactividad de mapas dentro de la NavigationTemplate
  • Nivel de API 2: Compatibilidad nueva con textos de varios tamaños para permitir que las apps proporcionen diferentes versiones de strings según el tamaño de la pantalla del vehículo
  • Sigue la guía para desarrolladores y el Javadoc de la biblioteca para obtener detalles adicionales y lineamientos de diseño sobre el uso de estas funciones en hosts de vehículos que son compatibles con el nivel de API 2.

Cambios en la API

  • Se volvieron predeterminados todos los métodos de interfaz *Callback y se cambió el nombre de OnRequestPermissionsCallback a OnRequestPermissionsListener. (Ib3ec9)
  • Se actualizaron las clases androidx.car.app.hardware para quitar los compiladores y las clases de parámetros innecesarios. (I67beb)
  • Se agregaron clases androidx.car.app.hardware para acceder a datos específicos del vehículo, como la batería, la velocidad y el nivel de combustible. (Iff3c9)
  • Se agregó compatibilidad con ActionStrip en MessageTemplate. (Ida657)
  • Se agregó setLoading a MessageTemplate. (I2a4b5)
  • Se cambió el nombre de ConnectionToCar a CarConnection. (Ife9bd)
  • Se cambió NavigationTemplate para mostrar un PanModeDelegate explícito. (I13877)
  • Se actualizó el orden de parámetros para CarContext.requestPermissions. (Ib890a)
  • Se actualizó la clave de metadatos a fin de definir el nivel de API mínimo para vehículos en androidx.car.api.minCarApiLevel. (Ib0d41)
  • Se creó una API que permite observar el estado de conexión del vehículo. (Ifc935)
  • Se agregó compatibilidad a fin de configurar un botón de activación para una Action y se agregó el tipo Action del modo de desplazamiento lateral. (Ica6af)
  • Se creó CarNotificationManager a fin de admitir el envío de notificaciones en el vehículo. (I10d7a)
  • Se agregó ConstraintManager para proporcionar límites de lista del host. (I8690e)
  • Se agregó el modo de desplazamiento lateral y la API de la barra de acciones del mapa en NavigationTemplate. (I77aa6)
  • Se agregó la API de zoom y de desplazamiento lateral en SurfaceCallback para las apps de navegación. (Id5e9d)
  • Se actualizó el CarAppApiLevel a 2. (Ic1540)
  • Se agregó la capacidad de solicitar permisos de un CarAppService. (I5421e)
  • Se agregó la anotación RequiresCarApi(2) a la API de multi-text. (Iacb62)
  • Se permiten diferentes variantes de texto en el título de la plantilla de mitad de la lista. (Ib8df7)
  • Se agregó una LongMessageTemplate nueva (requiere el nivel de API 2 para vehículos). (Ic5cee)

Correcciones de errores

  • Se actualizaron los requisitos de tamaño de la imagen para admitir pantallas de vehículos más grandes. (I116dc)
  • No se permite agregar más de 2 acciones en los cuerpos de las plantillas. (I32157)
  • Se garantizó la creación de todos los PendingIntent en las marcas establecidas en la biblioteca de la app para vehículos. (If84fe, b/186394900)
  • Se actualizó javadoc a fin de permitir los cambios de texto de Row como actualizaciones. (If3f9c)
  • Ahora, androidx.activity:activity:1.2.0 es una dependencia de API. (Id1cb9)
  • Se hizo que SignInTemplate y LongMessageTemplate requieran en el cuerpo acciones que solo se realizan con el vehículo estacionado y documentación actualizada para indicar que se mostrarán únicamente cuando el vehículo está estacionado. (Iddaa9)
  • Se corrigió una excepción que se producía cuando se abría una Screen durante el inicio. (Ifcf40, b/184664896)
  • Se permite el color de texto personalizado en ForegroundCarColorSpan. (I69e59)
  • Se solucionó un problema en el que se observaba ON_DESTROY en una instancia de Session después de producirse un ON_DESTROY de Screen. (I52e01, b/183696617)
  • Se actualizó javadoc para cuando se permite configurar el tiempo restante de una TravelEstimate en un tiempo desconocido. (I99610, b/183632456)
  • Se actualizó Action para admitir ForegroundColorSpan en el título y cualquier color de fondo personalizado. (I578e4)
  • No ejecutes NavigationManagerCallback#onStopNavigation si se borra la devolución de llamada antes de que se ejecute el ejecutor. (I7fc5e, b/181143772)
  • Se solucionó un problema por el cual se requería que la app tomara de forma explícita una dependencia en lifecycle-common-java8. (I8b8c8)

Errores conocidos

  • En la SignInTemplate, el teclado en pantalla muestra un ícono de "búsqueda" en lugar de un ícono para "ingresar" cuando el usuario quiere confirmar la entrada. De forma alternativa, los usuarios pueden acceder al teclado del teléfono que se activa cuando se enfoca el campo de entrada.
  • En la versión 6.5 de Android Auto, es posible que las devoluciones de llamada de zoom y de desplazamiento lateral en SurfaceCallback se invoquen de forma errónea con algunos gestos táctiles.

Car App Testing versión 1.0.0

Versión 1.0.0-alpha01

24 de marzo de 2021

Lanzamiento de androidx.car.app:app-testing:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Esta es la primera versión de Jetpack de la biblioteca de pruebas de código cerrado anterior. Consulta nuestros ejemplos para usar esta biblioteca en tus pruebas.

Nuevas funciones

  • Se quitaron los controladores para las clases de modelo. Los métodos get de los modelos ahora forman parte de la superficie de la API pública, lo que permite validar aquellos valores que se establecieron en los compiladores.
  • Se reemplazó el CarAppServiceController anterior por el nuevo SessionController para probar la lógica relacionada con el ciclo de vida de la conexión a los hosts.

Versión 1.0.0

Versión 1.0.0

21 de abril de 2021

Lanzamiento de androidx.car.app:app:1.0.0. La versión 1.0.0 contiene estas confirmaciones.

Funciones principales de la versión 1.0.0

  • A principios de abril, anunciamos que las apps ya pueden publicar en el canal de producción con androidx.car.app:app:1.0.0-rc01. La Biblioteca de apps para vehículos v1.0.0 ahora es estable y totalmente compatible con Android Auto 6.1 y versiones posteriores.
  • Consulta la guía para desarrolladores a fin de obtener información sobre cómo compilar apps de carga, navegación y estacionamiento para Android Auto con la biblioteca.

Correcciones de errores

  • Se corrigió una excepción que se producía cuando se abría una Screen durante el inicio. (70aae1, b/184664896)
  • Se solucionó un problema en el que se observaba ON_DESTROY en una instancia de Session después de producirse un ON_DESTROY de Screen. (0ceecb, b/183696617)

Versión 1.0.0-rc01

24 de marzo de 2021

Lanzamiento de androidx.car.app:app:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió un error de condición de carrera en el que se llamaba a NavigationManagerCallback#onStopNavigation después de que se borraba la devolución de llamada. Esto ocurría si se borraba la devolución de llamada antes de que se ejecutara el ejecutor de devolución de llamada. (I7fc5e, b/181143772)
  • Se solucionó un problema por el que la app requería una dependencia en lifecycle-common-java8 de forma explícita. (I8b8c8)
  • Se corrigió una NullPointerException que se producía cuando la app recibía una llamada stopNavigation cuando ya se había quitado una devolución de llamada. (Ib8b89, b/181143772)
  • Se implementaron mejoras para no enviar llamadas a la app si su ciclo de vida no está al menos en un estado CREATED. (I86965, b/179800224, b/177921120)
  • Se solucionó un problema por el que se generaba una API mínima no válida especificada en el manifiesto de la app, lo que provocaba un error de ANR en el host. (Iffedd, b/174231592)

Versión 1.0.0-beta01

24 de febrero de 2021

Lanzamiento de androidx.car.app:app:1.0.0-beta01. La versión 1.0.0-beta01 contiene estas confirmaciones.

Esta es la primera versión de Jetpack de la biblioteca de código cerrado anterior y es compatible con Android Auto 6.1 o versiones posteriores. Sigue la guía para desarrolladores a fin de obtener más información sobre cómo compilar apps para vehículos con la biblioteca.

Nuevas funciones

Correcciones de errores

  • Se solucionó un problema por el cual se reanudaba el elemento Screen incorrecto cuando resaltaban las pantallas de forma secuencial. (b/177590791)