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 Versión potencial Versión beta Versión alfa
27 de julio de 2022 1.1.0 1.2.0-rc01 - 1.3.0-alpha01

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.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.3.0-alpha01"
}

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.3.0-alpha01")
}

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

Versión 1.3.0-alpha01

27 de julio de 2022

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

Nuevas funciones

  • Se incluyen funciones como acceso por voz, alertadores, vista de detalles de la plantilla de panel de mapa, tarjetas de respuesta responsivas, opción de presionar en el mapa, lista de la plantilla de navegación para el contenido que no es de lugares, interactividad de mapas (zoom y desplazamiento) en los lugares de interés y vista previa de la ruta y actualización de contenido en PlaceListNavigationTemplate y PlaceListMapTemplate (con speedbump).

Cambios en la API

  • Se admite la vinculación de varias sesiones en la conexión de servicio (cambios internos) (I8e041).
  • Se agregó una nueva API de SuggestionManager#updateSuggestions para compartir sugerencias con el host del vehículo (I5c103).
  • Se agregó compatibilidad con la acción predeterminada para los alertadores cuando se alcanza el tiempo de espera (I5ad70).
  • Ahora CarAppService#onCreateSession() muestra una excepción que indica que se debe implementar #onCreateSession(SessionInfo) (I33a17).
  • Se agregó CarAppService#CATEGORY_FEATURE_CLUSTER, la constante utilizada para declarar la compatibilidad de clúster en el AndroidManifest.xml de una app (Id468d).
  • Se agregó CarAppService#onCreateSession(SessionInfo) y el objeto antiguo CarAppService#onCreateSession() dejó de estar disponible (I2db53).
  • Se agregó SessionInfo#getSupportedTemplates (I96985).
  • Se marcó el método get de una clase experimental (Ib6e6a).
  • Las aplicaciones usarán las APIs para acceder al sistema de climatización de vehículos (Ib628b).
  • Se agregó la anotación RequiresCarApi a las APIs nuevas de TravelEstimate (Ic620d).
  • Se agregó un nuevo elemento de encabezado a otras plantillas de navegación (I30e6a).
  • Se agregó CarZone como APIs experimentales a AndroidX (I99097).
  • Se agregó el estado inhabilitado para Toggle, Action y Row (Id8a09).
  • Se agregó compatibilidad con ItemList en MapTemplate (If44b8).
  • Se creó compatibilidad para recuperar la entrada del micrófono del vehículo (I5e71a).
  • Se quitó la API experimental de la API de Car App de nivel 5 (If1a92).
  • Se agregó "lugar de interés" como categoría para habilitar apps de lugares de interés (I59da1).
  • Se actualizó TravelEstimateCard para permitir errores de datos o imágenes (Idcc6d).
  • Se actualizó el nivel de API de Car App a 5 (I26b8e).
  • Se agregó una nueva API a CarAppLibrary para habilitar el uso de alertas en la app (I163a7).
  • Se agregó una plantilla genérica que permite agregar casos de uso de lugares de interés (If5826).

Correcciones de errores

  • Se agregó compatibilidad con objetos CarIconSpan en el título PaneTemplate (Ia1ee0).
  • Se agregó a Cristian y David a los propietarios (Ib66ba).
  • Se actualizaron las reglas de tamaño de imagen de PaneTemplate para que sean un cuadro de límite cuadrado (Idd72e).
  • Se refactorizó la vinculación del servicio de apps para vehículos desde CarAppService (Ic7e04).
  • Se corrigió una excepción que sucede si la pila de pantalla se modifica después de State.DESTROYED (I3c8eb).
  • Se quitó la dependencia del proyecto de las APIs experimentales (Iac362).
  • Se están agregando las APIs de registro y anulación de registro de AutomotiveCarClimate (If2dd3).

Versión 1.2

Versión 1.2.0-rc01

23 de marzo de 2022

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

  • Esta es una versión de estabilización, y no hay cambios de API en comparación con v1.2.0-beta02. Se agregaron nuevas funciones experimentales (nivel de API 5) que se diseñaron para versiones futuras de Android Auto y Android Automotive.

Correcciones de errores

  • Se corrigió una excepción que sucede si la pila de pantalla se modifica después de State.DESTROYED (I3c8eb).
  • Se actualizó la API de CarSensors para indicar que no se implementaron para AAOS (Idd57b).
  • Se actualizó PlaceListMapTempalte.Builder#setCurrentLocationEnabled a fin de indicar que ACCESS_COARSE_LOCATION es suficiente para la función (I510c2).
  • Se hizo un número de salida opcional para los tipos de maniobra de rotonda con ángulo (Ife7d1).

Versión 1.2.0-beta02

26 de enero de 2022

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

Las apps para vehículos creadas con esta versión de biblioteca que están orientadas a la plataforma Android Automotive OS ahora pueden publicarse en el canal de pruebas abiertas de Play Store. Consulta la guía para desarrolladores a fin de obtener más detalles.

Las funciones anotadas con nivel de API 4 o inferior son compatibles con Android Auto 7.2 o versiones posteriores y la nueva plataforma Android Automotive OS. Consulta la sección Known Issues a continuación para conocer las advertencias.

Cambios en la API

  • Se agregó la API experimental de setOnContentRefreshListener a las plantillas de lugares de interés (I6bf22).

Correcciones de errores

  • Se corrigió una fuga de memoria en CarAppService cuando se desvincula el host del vehículo (I5c9ca, b/203594731).
  • Se actualizó el código javadoc de CarAppActivity para que incluya los requisitos del modo de lanzamiento de una sola tarea (Id2f95).
  • Se redujo el error visual en la reanudación (Iff7e0).

Errores conocidos

  • Los mapas ActionStrip en PlaceListNavigationTemplate y RoutePreviewNavigateTemplate comenzarán a estar disponibles en las próximas actualizaciones de Android Auto y Android Automotive OS.

Versión 1.2.0-alpha02

15 de diciembre de 2021

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

Las funciones anotadas con el nivel de API 4 se actualizaron de experimentales a estables, incluidos los mapas ActionStrip en PlaceListNavigationTemplate y RoutePreviewNavigateTemplate, la imagen CarIcon en Pane, el QRCodeSignInMethod y la capacidad de establecer sugerencias de renderización (p. ej., marcas) en Action.

Nuevas funciones

  • En Android Auto 7.1 y versiones posteriores, el límite del artículo de Pane aumentó de 2 a 4.

Cambios en la API

  • Se agregó un método toString() experimental a CarUnit (I36a3b).

Correcciones de errores

  • Se corrigió una falla que ocurría en CarAppPermissionActivity si no funcionaba la devolución de llamada (If9823).
  • Se cambió el límite predeterminado de Pane a 4 (I0068b).

Versión 1.2.0-alpha01

3 de noviembre de 2021

Se lanzó androidx.car.app:app-*:1.2.0-alpha01. La versión 1.2.0-alpha01 contiene estas confirmaciones.

Todas las funciones nuevas de v1.2.0 (API 4 o superior) se encuentran actualmente en fase experimental y se orientan a versiones futuras de Android Auto y el SO Android Automotive. Consulta la guía para desarrolladores a fin de obtener más detalles.

Cambios en la API

  • La API de AutomotiveCarInfo pasó a ser experimental (Ia13e5).
  • Se agregó el nivel de API 4 de la biblioteca de apps para vehículos (I2a2e7).
  • Nivel de API 4: Se agregó compatibilidad para configurar un elemento CarIcon en Pane (Ifcc12).
  • Nivel de API 4: Se agregó el método de acceso con código QR (Ib623e).
  • Nivel de API 4: Se agregó set/getFlags a Action (Ic03ab).
  • Nivel de API 4: Se agregó compatibilidad con el desplazamiento lateral y el zoom en PlaceListNavigationTemplate y RoutePreviewNavigationTemplate (I9d8a3).

Correcciones de errores

  • Nivel de API 4: Se agregó un mecanismo para permitir que las apps envíen actualizaciones de ubicación al host del vehículo (I3bad3).
  • Se solucionó un problema en el que la lógica de validación del host no encontraba correctamente el permiso TEMPLATE_RENDERER (I62618).

Versión 1.1.0

Versión 1.1.0

15 de diciembre de 2021

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

Esta es una versión de estabilización, y no hay cambios de API en comparación con v1.1.0-rc01. Consulta también las notas de la versión de v1.2.0-alpha02 a fin de obtener más detalles sobre las nuevas funciones de la biblioteca de apps para vehículos.

Cambios importantes desde 1.0.0

  • Nivel de API 2: SignInTemplate y LongMessageTemplate que se pueden usar para flujos de acceso cuando el vehículo está estacionado
  • Nivel de API 2: Compatibilidad con la interactividad de mapas dentro de la NavigationTemplate
  • Nivel de API 2: Compatibilidad 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
  • Nivel de API 3: 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

Versión 1.1.0-rc01

3 de noviembre de 2021

Se lanzó androidx.car.app:app-*:1.1.0-rc01. La versión 1.1.0-rc01 contiene estas confirmaciones.

Esta es una versión de estabilización, y no hay cambios de API en comparación con v1.1.0-beta01. Se agregaron nuevas funciones experimentales (nivel de API 4) que se diseñaron para versiones futuras de Android Auto. Consulta las notas de la versión de v1.2.0-alpha01 para obtener más detalles sobre las API experimentales.

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 en 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 la compilación de 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 la compilación de 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).