Car App

Compila apps basadas en plantillas para Android Auto y el SO Android Automotive.
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
13 de noviembre de 2024 1.4.0 - 1.7.0-beta03 -

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 de 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.4.0"

    // For Android Auto specific functionality
    implementation "androidx.car.app:app-projected:1.4.0"

    // For Android Automotive specific functionality
    implementation "androidx.car.app:app-automotive:1.4.0"

    // For testing
    testImplementation "androidx.car.app:app-testing:1.4.0"
}

Kotlin

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

    // For Android Auto specific functionality
    implementation("androidx.car.app:app-projected:1.4.0")

    // For Android Automotive specific functionality
    implementation("androidx.car.app:app-automotive:1.4.0")

    // For testing
    testImplementation("androidx.car.app:app-testing:1.4.0")
}

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 de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

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

Versión 1.7

Versión 1.7.0-beta03

13 de noviembre de 2024

Se corrigió una vulnerabilidad de seguridad y otros errores generales. Si usas una versión anterior, actualízala para usar esta versión.

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

Cambios en la API

  • Actualiza el código de serialización o deserialización de CAL para que solo controle los objetos que tengan declarada la anotación @CarProtocol. (Ic730e).
  • CarAppExtender ahora se puede usar para extender el framework Notification.Builder en lugar de solo NotificationCompat.Builder. (Id3ad7).
  • Agrega KEY_EXCLUDE_MEDIA_ITEM_FROM_MIXED_APP_LIST adicionales. (I201f9).
  • Deja de estar disponible el constructor de Builder vacío en ConversationItem y reemplázalo por un constructor que tome los parámetros obligatorios. También se agrega una verificación para proteger contra mensajes nulos. (Ic8221)

Correcciones de errores

  • Asegúrate de que el mapa de PlaceList use el título de encabezado de cadena (solo texto). (Ic992f).
  • Esta biblioteca ahora usa anotaciones de nulidad de JSpecify, que son de tipo de uso. Los desarrolladores de Kotlin deberían usar los siguientes argumentos del compilador para aplicar el uso correcto: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode. (Ib5367, b/326456246).

Versión 1.7.0-beta02

18 de septiembre de 2024

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

Cambios en la API

  • Se agregó KEY_ROOT_HINT_MEDIA_HOST_VERSION adicional (I8796b).
  • Se reemplazó la clase TabContents.Api8Builder por el constructor @ExperimentalCarApi en la clase TabContents.Builder (I26fbe).
  • Se agregaron la acción de intent y los extras para CarMediaApp (I50782).
  • Se marcaron las APIs de mensajería como no experimentales (I0b070).
  • Se agregó la carga de elementos remotos a SectionedItemTemplate (permite que las listas largas se carguen sin fallas) (I0d122).
  • Se agregó SectionedItemTemplate a la lista de plantillas compatibles dentro de TabTemplate en el nivel de API 8. (Idc5d6).

Correcciones de errores

  • Se quitó el esquema manual de acceso a las nuevas APIs de la plataforma, ya que esto se realiza automáticamente a través del modelado de API cuando se usa R8 con AGP 7.3 o versiones posteriores (p.ej., R8 versión 3.3) y para todas las compilaciones cuando se usa AGP 8.1 o versiones posteriores (p.ej., D8 versión 8.1). Se recomienda a los clientes que no usen AGP que actualicen a la versión 8.1 de D8 o una posterior. Consulta este artículo para obtener más detalles. (I9496c, b/345472586).

Versión 1.7.0-beta01

26 de junio de 2024

Lanzamiento de androidx.car.app:app-*:1.7.0-beta01. La versión 1.7.0-beta01 contiene estas confirmaciones. Las funciones son las mismas que se publicaron en alpha01, que se repiten a continuación:

Nuevas funciones

  • Mapa con contenido: Es una nueva plantilla de lienzo de mapa más una plantilla de contenido, que por ahora puede ser de lista, cuadrícula, panel o mensaje.
    • RoutePreview, PlaceListNavigation y MapTemplate ahora son obsoletos. Las plantillas seguirán funcionando tal como están.
    • Se actualizaron las apps de ejemplo para mostrar el uso de MapWithContent en lugar de plantillas obsoletas.
  • Elemento de conversación: Se agregaron nuevas APIs para mostrar conversaciones (MI, SMS) y la lectura de Asistente en el vehículo.
  • Dimensiones del vehículo: Nueva API para recuperar las medidas del vehículo (datos en AAOS en este momento).

Cambios en la API

  • Se agregó la etiqueta @ExperimentalCarApi a MediaPlaybackTemplate.Builder. (Ic1957).
  • Se agregó un nuevo SectionedItemTemplate en la versión experimental. (I5958a).
  • Se introdujo CarAppApiLevel 8 (I3fa22).
  • Se agregó MediaPlaybackTemplate para mostrar contenido durante la reproducción de contenido multimedia en la biblioteca de Car App. (I3c10d).
  • Se agregó una nueva API para que las apps detecten si el sistema admite audio en segundo plano mientras se conduce (I0f868).

Correcciones de errores

  • Se corrigieron ciertas instancias de fugas de memoria y fallas en el código del cliente de CAL y en la app de ejemplo de navegación de CAL. (I55e04)
  • Reemplaza requireNotNull instances en el método onDestroy de BaseCarAppActivity con verificaciones if-null para evitar fallas. (Iec676).

Versión 1.7.0-alpha02

17 de abril de 2024

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

Nuevas funciones

  • Se agregaron marcas obsoletas para las plantillas basadas en mapas que la plantilla MapWithContent admitirá en el futuro.

Cambios en la API

  • Se dieron de baja las versiones anteriores de MapTemplate, RoutePreviewNavigationTemplate y PlaceListNavigationTemplate, y se recomienda usar las nuevas MapWithContentTemplate (Ib0a08).

Versión 1.7.0-alpha01

3 de abril de 2024

Lanzamiento de androidx.car.app:app-*:1.7.0-alpha01. Cambiamos nuestro esquema de control de versiones de bibliotecas para que coincida con la versión activa de CarApi. Esto se hace para reducir la confusión sobre el esquema de nombres en función de los comentarios de los desarrolladores. Como resultado, omitimos las versiones 1.5 y 1.6 y pasamos directamente a la 1.7. La versión 1.7.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Mapa con contenido: Nueva plantilla llamada MapWithContent que admite lista, cuadrícula, panel o mensaje como contenido dentro de un mapa.
    • RoutePreview, PlaceListNavigation y las plantillas de mapas dejaron de estar disponibles.
    • Se actualizaron las apps de ejemplo para mostrar la funcionalidad de las plantillas obsoletas con MapWithContent.
  • Elemento de conversación: Nuevas APIs para mostrar conversaciones (MI, SMS) y la lectura de Asistente en el vehículo.
  • Dimensiones de vehículos: Nueva API para recuperar las medidas de los vehículos (por el momento, datos en AAOS).

Cambios en la API

  • Se marcó el tipo de imagen de fila extra pequeña como experimental (I5184b).
  • Se agregó la API de CarInfo#fetchExteriorDimensions, que permite acceder a la información de las dimensiones exteriores del vehículo, como la altura, el ancho, etcétera (Ia40c5).
  • Se quitó la etiqueta ExperimentalAPI de MapWithContentTemplate (I66db8).
  • Se actualizó el parámetro GridItem#setTitle para que sea nulo. (I3d610).
  • La API de GetHeader no requiere el nivel de API 7 porque es retrocompatible (I8c812).
  • Se agregó compatibilidad con Header en ListTemplate y se dieron de baja headerAction, headerTitle y actionStrip (I7ae01).
  • Se dieron de baja title, headerAction y actionStrip en GridTemplate y se agregó compatibilidad con Header (I41a9c).
  • Se quitó el requisito de nivel 7 para las APIs experimentales: insignia, métodos get/set de tamaño de elementos y forma de imagen de GridTemplate, métodos GridItem para obtener o establecer insignias. (Id71eb)
  • Se dieron de baja title, headerAction y actionStrip en PaneTemplate, y se agregó compatibilidad nueva con Header (I23154).
  • Se cambió la telemetría de Media Center de BroadcastReceiver a la acción personalizada de exploración. (I4185f).
  • Se agregó compatibilidad con el atributo Header en MessageTemplate. La compatibilidad con ActionStrip, headerAction y title dejó de estar disponible. (Ie2de8).
  • Se modificó la visibilidad constante de la alerta (Icf8a8).
  • Se quitó el atributo isLoading de la plantilla superior (I651e6).
  • Se agregaron elementos adicionales para informar a las apps de música sobre los parámetros principales de la IU (I85ca2).
  • Se agregó la función de estadísticas del centro multimedia a MediaExtensions (I7ce28).
  • Se agregó la opción de imagen extrapequeña en las filas. (I72c03)

Correcciones de errores

  • Se actualizó javadoc en ConversationItem para indicar que los mensajes deben ordenarse de la más antigua a la más reciente. (I77a2a)
  • Se actualizó la lógica de truncamiento de ListTemplate para quitar los mensajes más antiguos de ConversationItem (Ie0a61).

Versión 1.4

Versión 1.4.0

29 de mayo de 2024

Lanzamiento de androidx.car.app:app-*:1.4.0. La versión 1.4.0 es una promoción de la versión 1.4.0-rc02.

Cambios importantes desde la versión 1.3.0

  • Renderización de mapas del clúster de instrumentos para apps de navegación
  • Nueva plantilla de pestaña para mejorar el diseño y la usabilidad de la app
  • Compatibilidad con los límites de tareas adaptables
  • Acciones secundarias en elementos de lista

Versión 1.4.0-rc02

13 de diciembre de 2023

Lanzamiento de androidx.car.app:app-*:1.4.0-rc02. La versión 1.4.0-rc02 contiene estas confirmaciones. Solo correcciones menores

Correcciones de errores

  • Se actualizó javadoc en ConversationItem para indicar que los mensajes deben ordenarse de la más antigua a la más reciente (I77a2a).
  • Se actualizó la lógica de truncamiento de ListTemplate para quitar los mensajes más antiguos de ConversationItem (Ie0a61).

Versión 1.4.0-rc01

1 de noviembre de 2023

Lanzamiento de androidx.car.app:app-*:1.4.0-rc01 sin cambios notables. La versión 1.4.0-rc01 contiene estas confirmaciones.

Versión 1.4.0-beta02

20 de septiembre de 2023

Lanzamiento de androidx.car.app:app-*:1.4.0-beta02. La versión 1.4.0-beta02 contiene estas confirmaciones. Esto es casi idéntico a beta01, pero reduce el requisito de compileSdk a 33.

Correcciones de errores

  • Se corrigió un error por el que las pantallas de carga en las pestañas no se mostraban correctamente. (cae860)

Versión 1.4.0-beta01

9 de agosto de 2023

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

Nota: La versión 1.4-beta01 requiere compileSdk34, que aún se encuentra en estado de desarrollo. La versión 1.4-beta02 corregirá este problema. Como alternativa, puedes agregar android.suppressUnsupportedCompileSdk=34 al archivo settings.gradle de tu proyecto para suprimir temporalmente la advertencia de forma segura.

Nuevas funciones

Cambios en la API

  • Consulta alpha02

Versión 1.4.0-alpha02

26 de julio de 2023

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

  • El lanzamiento de Alpha02 es una preparación para una próxima versión de beta01.

Nuevas funciones

  • Procesamiento de mapas en el clúster de instrumentos para apps de navegación
  • Se agregaron pestañas para las apps para mejorar la experiencia de diseño
  • Se agregaron opciones de renderización de plantillas de lista o cuadrícula
  • Se agregaron nuevas categorías para el clima y las comunicaciones
  • Se movieron varias APIs a la próxima versión de CarApi 7.

Cambios en la API

  • Se agregaron campos multimedia a CarMessage (I5aaf6).
  • Se agregaron acciones personalizadas a ConversationItem en la biblioteca de Car App (Ie5ed6).
  • Se agregaron elementos adicionales para indicar que un elemento multimedia se reproduce con un formato de audio envolvente y mostrar su logotipo de formato de contenido (Icb5bb).
  • Se agregó un nuevo tipo de acción, la API de ActionsConstraints, para admitir el botón de composición. (I31661)
  • Se hizo set/getTemplate como set/get ContentTemplate (Ica036).
  • El parámetro de plantilla ahora sería @NonNull. Se actualizó la documentación de la API de MapWithContentTemplate (I0f8ed).
  • Se quita la etiqueta @ExperimentalCarApi para las Acciones en ListTemplate para el lanzamiento en CAL 1.4 (I2cfcb).
  • Se quita la etiqueta @ExperimentalCarApi para TabTemplate (Ifcb82).
  • Se quitaron las anotaciones @ExperimentalCarApi de las acciones secundarias y decoraciones de la fila (I8487e).
  • Se agregó el ID de contenido de la pestaña activa a TabTemplate y se dio de baja el estado activo en las pestañas (I96932).
  • Se agregó la propiedad ItemImageShape a GridTemplate (Ibf431).
  • Se agregó la propiedad ItemSize a GridTemplate, que controla el tamaño de los elementos de la cuadrícula según buckets relativos pequeños, medianos y grandes. (Icdb3b)
  • Abre el acceso a la API para que los desarrolladores obtengan una copia de la pila de pantallas actual. (I48107)
  • Se agregó una categoría para apps del clima a la biblioteca de apps para vehículos (I2be44).
  • Se agregó una categoría para las apps que realizan llamadas a la biblioteca de apps para vehículos (Icab33).
  • Se reemplazó GridItem.Builder#setBadge() por métodos setImage() sobrecargados (Id2000).
  • Se agregó la propiedad de ícono a la insignia (I629b2).
  • Se agregó un método para establecer el color de fondo de la insignia de punto (I6411c).
  • Agrega la propiedad Insignia a GridItem, lo que permite que se muestre una insignia sobre una imagen GridItem. (I95de7).
  • Se agregó un objeto de insignia experimental que representará una insignia que se mostrará sobre una imagen. (I9878d)

Versión 1.4.0-alpha01

22 de febrero de 2023

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

Cambios en la API

  • Se agregaron acciones de nivel superior a GridTemplate en la biblioteca de apps para vehículos (Id0191).
  • Se agregaron acciones de nivel superior a ListTemplate en la biblioteca de apps para vehículos (I9efab).
  • Se agregaron elementos adicionales para vincular el subtítulo o la descripción de un elemento multimedia a otros elementos. (Ic84bf)
  • Se actualizó el nivel de API de las acciones de fila al nivel 6. (Ie0a69).
  • Se agregaron devoluciones de llamada de mensajería a A4C (Ie3986).

Correcciones de errores

  • Se agregaron las referencias faltantes a documentos de Java para CarMessage (I5db1c).
  • Se anularon equals() y hashCode() para ConversationItem y CarMessage (I6fd10).
  • Se mejoró la validación de ConversationItem.mMessages (se requieren valores no nulos ni vacíos) (Iafc51).
  • Se agregaron anotaciones @Keep a los campos ConversationItem (I5d250).
  • Se actualizaron los documentos Java para la decoración de filas y las acciones secundarias (I000b6).

Versión 1.3

Versión 1.3.0-rc01

7 de diciembre de 2022

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

  • Se corrigieron errores menores de la versión beta01. No hay cambios importantes.

Versión 1.3.0-beta01

7 de septiembre de 2022

Se lanzaron androidx.car.app:app:1.3.0-beta01, androidx.car.app:app-projected:1.3.0-beta01, androidx.car.app:app-automotive:1.3.0-beta01 y androidx.car.app:app-testing:1.3.0-beta01. La versión 1.3.0-beta01 contiene estas confirmaciones.

Nuevas funciones

Además de las funciones agregadas a la biblioteca de apps para automóviles 1.3.0-alpha01, se agregaron las siguientes funciones como parte de la versión beta01 (todas las funciones que se describen aquí solo incluyen cambios en el host sin cambios en la API):

  • La barra de navegación flotante se seguirá mostrando incluso cuando el usuario esté en una pantalla de selección basada en mapas de PlaceListNavigationTemplate, RoutePreviewNavigationTemplate y MapTemplate. Para ello, actualiza la información de navegación mediante NavigationManager.updateTrip().
  • Habilita el botón de acción con FLAG_DEFAULT para tener una animación de tiempo de espera. Este botón se activará de forma predeterminada después del tiempo de espera ([API 5 - All Templates]).
  • El subtexto de un Row no se trunca cuando el automóvil está estacionado, pero se trunca a 2 líneas mientras conduces ([API 5 - All Templates]).
  • Estado de compatibilidad inhabilitada para Action, Toggle, Row ([API 5 - All Templates]).

Cambios en la API

  • Se flexibilizaron las restricciones de la lista MapTemplate para admitir listas seleccionables (I961ed).
  • Se quitó la restricción para las acciones de encabezado a fin de permitir íconos personalizados (Iad28f).
  • Se agregó una restricción setOnClickListenerAllowed() a ActionsConstraints. Se permitió que Action configurara OnClickDelegate() en acciones, excepto los tipos de íconos estándar (TYPE_APP_ICON, TYPE_BACK, and TYPE_PAN) (I3c745).

Correcciones de errores

Versión 1.3.0-alpha01

27 de julio de 2022

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

Las funciones anotadas con nivel de API 5 son compatibles con Android Auto 7.9 y versiones posteriores.

Nuevas funciones

  • Nivel de API 5: Se agregó un MapTemplate nuevo que pueden usar las apps de navegación para mostrar contenido en un panel o una lista junto a un mapa (If5826, If44b8).
  • Nivel de API 5: Se agregó la nueva API de CarAudioRecord para permitir la grabación de entrada de audio con el micrófono del vehículo host (I5e71a).
  • Nivel de API 5: Se agregó la nueva API de SuggestionManager para permitir que las apps proporcionen sugerencias al host (I5c103).
  • Nivel de API 5: Se agregó la nueva API de Alert para mostrar notificaciones contextuales en NavigationTemplate (I163a7, I5ad70).
  • Nivel de API 5: Se agregaron nuevos componentes Header y MapController para facilitar la reutilización en plantillas (If5826).
  • Se agregó androidx.car.app.category.POI como categoría para habilitar apps de lugares de interés (y androidx.car.app.category.PARKING y androidx.car.app.category.CHARGING dejaron de estar disponibles) (I59da1).

Cambios en la API

  • Nivel de API 5: Se agregó el nuevo método onClick en la interfaz SurfaceCallback para permitir la interacción de presionar en el mapa (Ia9777).
  • Nivel de API 5: Se agregaron nuevas marcas Action.FLAG_IS_PERSISTENT y Action.FLAG_DEFAULT para describir Action (I96318, I5ad70).
  • Nivel de API 5: Se agregó un nuevo estado habilitado/inhabilitado para los componentes Action, Row yToggle (la compatibilidad de host con la versión 1.3.0-beta01 de la biblioteca) (ID8a09).
  • Nivel de API 5: Se dio preferencia al nuevo componente Header mediante setHeader en el PlaceListNavigationTemplate.Builder y RoutePreviewNavigationTemplate.Builder, por lo que dejaron de estar disponibles los métodos setTitle y setHeaderAction existentes (I30e6a).
  • Nivel de API 5: Se agregó un nuevo método setOnContentRefreshListner en PlaceListMapTemplate.Builder y PlaceListNavigationTemplate.Builder para usar con implementaciones de la nueva interfaz OnContentRefreshListner.
  • Nivel de API 5: Se agregaron nuevos objetos setTripText y setTripIcon en TravelEstimate.Builder para personalizar la tarjeta de estimación de viajes (Idcc6d, Ic620d).
  • Se agregó compatibilidad con objetos CarIconSpan en el título de PaneTemplate (Ia1ee0).
  • Se agregó compatibilidad con objetos CarIconSpan en el título y el texto de una Row (Ic1e3c).
  • Los elementos ActionStrip de mapas ahora pueden tener hasta cuatro acciones (If3522).
  • Se actualizó el nivel de API de Car App a 5 (I26b8e).
  • Los encabezados/títulos ahora son opcionales para PlaceListMapTemplate, PlaceListNavigationTemplate, RoutePreviewNavigationTemplate, GridTemplate, ListTemplate, LongMessageTemplate, MessageTemplate, PaneTemplate y SignInTemplate (I2078d, Icadde).

Correcciones de errores

  • Se actualizaron las reglas de tamaño de imagen de PaneTemplate para que sean un cuadro de límite cuadrado (Idd72e).
  • Se corrigió una excepción que sucede si la pila de pantalla se modifica después de State.DESTROYED (I3c8eb).
  • Se agregó una verificación de nulabilidad para recuperar el ícono de la app (I3f710).
  • Se actualizó la API de Car Hardware para usar STATUS_UNKNOWN en lugar de STATUS_UNAVAILABLE de forma predeterminada (Ic9444).
  • Se comprueba si la pantalla existe antes de crear la superficie (Ice027a).
  • Se corrigió el error CarValue.equals() relacionado con STATUS_UNIMPLEMENTED (I24451).

Versión 1.2

Versión 1.2.0

9 de noviembre de 2022

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

  • Esta es una versión de estabilización y no hay cambios en comparación con la versión v1.2.0-rc01.

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 y versiones posteriores y con 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 se 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 Car App (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 del vehículo, 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 APIs 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 finalizada 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 del vehículo, 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).