Notas de la versión del SDK de consumidores para Android

En esta sección, se incluyen las notas de la versión del SDK de consumidor para Android.

Anuncio: Se congelará la compatibilidad con los niveles de API 23, 24 y 25

De acuerdo con la política de compatibilidad con versiones de SO para dispositivos móviles, congelaremos la compatibilidad con Android 6 y 7 (niveles de API 23, 24 y 25) en las próximas versiones principales del SDK para consumidores para Android.

Las versiones del SDK de consumidor para Android que se lancen a partir del cuarto trimestre de 2025 admitirán, como mínimo, Android 8 (nivel de API 26). Las versiones anteriores del SDK seguirán siendo compatibles con Android 6 y 7.

Si tus dependencias no especifican un número de versión, tu IDE cargará la versión más reciente del SDK, y las nuevas compilaciones de tu app no admitirán Android 6 ni 7.

Especifica una versión del SDK de consumidor para Android en las dependencias de compilación de tu aplicación para controlar cuándo aumentas el SO mínimo admitido para las versiones nuevas de tu app.

5.0.0 (9 de noviembre de 2026)

  • Se agregó compatibilidad con el modo completo de R8. Las reglas de ProGuard del SDK ahora conservan las clases de proveedor de gRPC que se cargan por reflexión, por lo que las apps que habilitan el modo completo de R8 ya no fallan en el inicio con Unable to load OkHttpChannelProvider.

Correcciones de errores

  • Se solucionó un problema por el que los intentos de conexión segura a Fleet Engine podían permanecer pendientes de forma indefinida si un proxy de operador intermedio se detenía durante la configuración de la conexión, lo que impedía que se actualizaran el estado del viaje y el seguimiento del vehículo en ciertas redes móviles. El SDK de consumidor ahora aplica un tiempo de espera de conexión y se recupera automáticamente en una conexión nueva.

Cambios en las dependencias y la configuración

A partir de la versión 5.0.0 del SDK de Consumer para Android, hay nuevos requisitos mínimos:

  • La versión mínima de Android compatible es Android 7.0 (nivel de API 24).
  • Las apps deben actualizarse a Kotlin 2.4.

Ahora, el SDK se compila con las siguientes herramientas:

  • Se actualizó el complemento de Android para Gradle a la versión 9.2.0.
  • Se actualizó Gradle a la versión 9.4.1.

4.1.0 (26 de mayo de 2026)

  • Mejoras internas: Se migró el almacenamiento de datos interno a Jetpack DataStore.

Cambios en las dependencias y la configuración

  • Se actualizó la versión de la dependencia de Kotlin a la v2.3.0.
  • Se actualizó el complemento de Android para Gradle a la versión 8.13.2.
  • Se actualizó Gradle a la versión 8.13.
  • Se actualizó la biblioteca de expansión de sintaxis a la versión 2.1.5.
  • Se actualizó el SDK de Maps a la versión 20.0.0 y se actualizaron las siguientes dependencias de los Servicios de Google Play:
    • play-services-location: 21.3.0
    • play-services-tasks: 18.4.1
    • play-services-common: 18.1.0
    • play-services-basement: 18.1.0
  • Se agregaron dependencias de Jetpack Datastore (androidx.datastore:datastore-core:1.2.0, androidx.datastore:datastore-guava:1.2.0).

4.0.0 (3 de octubre de 2025)

  • Se realizaron mejoras internas.

3.2.0 (26 de junio de 2025)

  • Se realizaron mejoras en el registro interno.

Cambios en las dependencias y la configuración

  • A partir de la versión 3.2.0 del SDK de Consumer para Android, las apps deben actualizarse a Kotlin 2.1.

Correcciones de errores

  • Usa la longitud de la polilínea en lugar de la distancia aérea para tomar decisiones de animación interna.

3.1.0 (10 de marzo de 2025)

  • Se realizaron mejoras en el registro interno.

3.0.0 (6 de diciembre de 2024)

Cambios en las dependencias y la configuración

2.99.0 (25 de noviembre de 2024)

Correcciones de errores

  • Se corrigió el error de ANR que se produce cuando ConsumerApi.cleanUp() tarda demasiado en ejecutarse. Esto se lanzará de forma progresiva (comenzando desde el 0%) una vez que se haya integrado la versión.
  • Se corrigió un problema por el que los conductores recibían errores de gRPC con el código "INTERNAL" y el mensaje "Panic! Este es un error". Esto se lanzará de forma progresiva (comenzando desde el 0%) una vez que se haya integrado la versión.

2.3.0 (2 de agosto de 2024)

Cambios en la API

  • Agrega compatibilidad con el diseño de mapas basado en Cloud, que te permite crear una experiencia de mapa de ruta personalizada para tus usuarios sin tener que actualizar el código de tus apps cada vez que realices un cambio en el diseño del mapa. Para obtener más información, consulta Cómo aplicar diseño al mapa con el diseño de mapas basado en Cloud.

  • Se agregó el método getServerTimeMillis() a VehicleLocation para determinar la hora en que Fleet Engine recibió la ubicación actualizada.

2.2.0 (7 de mayo de 2024)

Cambios en la API

  • Se agregó la API de compatibilidad para la integración de Jetpack Compose. Esta función se encuentra en fase experimental. Para obtener detalles sobre la integración con Jetpack Compose, comunícate con tu representante.

2.1.0 (17 de enero de 2024)

Correcciones de errores

  • Se corrigió una falla que se producía cuando el SDK se inicializaba más de una vez durante el ciclo de vida de la aplicación.

Cambios en la API

  • Se introduce el método para recuperar la instancia de GoogleMap que creó el SDK (ConsumerGoogleMap.getGoogleMap()).
  • Se introduce la API para recuperar las instancias de Marker que creó el SDK para representar el vehículo (ConsumerController.getConsumerMarker()).
  • Se introduce la API para recibir actualizaciones proyectadas del cliente sobre el tiempo y la distancia durante el uso compartido del viaje (ProjectedRouteEta).

1.99.2 (3 de noviembre de 2023)

  • Se corrigió una falla que se producía cuando se inicializaba el SDK desde un proceso remoto, independiente de la aplicación.

  • Se corrigió una falla que se producía cuando se ejecutaba una animación de la cámara y no había suficiente espacio vertical u horizontal para el padding. Esto solo ocurre en el renderizador de mapas más reciente.

  • Se corrigió un error que provocaba que se recortara el primer tramo de un viaje consecutivo cuando el segundo tramo pasaba por la misma ruta.

Problemas

  • ConsumerApi.initialize() arroja una excepción si se invoca cuando ya existe una instancia de la API. Para solucionar este problema, primero llama a ConsumerApi.getInstance() y evalúa el Task que se muestra para determinar si ya existe una instancia de la API.

2.0.0 (15 de septiembre de 2023)

Anuncio: Cambios rotundos

  • Se actualizó el requisito de nivel de API mínimo de 21 a 23.

  • Se actualizó el requisito de la versión del SDK de Maps de la v17.0.0 a la v18.1.0.

  • Se actualizó el requisito de la versión mínima de la biblioteca estándar de Kotlin de la v1.6.10 a la v1.9.0.

  • Actualiza las versiones de las dependencias de los Servicios de Google Play

    • Se actualizó el requisito de la versión mínima de la biblioteca play-services-base de la v18.0.1 a la v18.2.0.

    • Se actualizó el requisito de la versión mínima de la biblioteca play-services-basement de la v18.0.0 a la v18.2.0.

    • Se actualizó el requisito de la versión mínima de la biblioteca play-services-location de la v17.0.0 a la v21.0.1.

    • Se actualizó el requisito de versión mínima de la biblioteca play-services-tasks de la v18.0.1 a la v18.0.2.

  • Agrega la biblioteca androidx.room:room-runtime con el requisito de versión mínima establecido en v2.5.2

  • Actualiza las siguientes versiones de dependencias

    • Se actualizó el requisito de versión mínima de la biblioteca android-maps-utils de la v0.4.2 a la v3.5.2.

    • Se actualizó el requisito de versión mínima de com.google.android.datatransport:transport-backend-cct de la versión 3.0.0 a la 3.1.9

    • Se actualizó el requisito de versión mínima de com.google.android.datatransport:transport-runtime de la v3.0.1 a la v3.1.9

    • Se actualizó el requisito de versión mínima de androidx.lifecycle:lifecycle-extensions de la v2.0.0 a la v2.2.0.

    • Se actualizó el requisito de versión mínima de androidx.lifecycle:lifecycle-common-java8 de la versión 2.0.0 a la 2.6.1.

    • Se actualizó el requisito de versión mínima de androidx.appcompat:appcompat de la v1.0.0 a la v1.6.1.

    • Se actualizó el requisito de versión mínima de androidx.fragment:fragment de la v1.0.0 a la v1.6.1.

  • Se quitaron las siguientes APIs que se habían dejado de usar: ConsumerTrip, ConsumerTripCallback, ConsumerTripManager y ConsumerTripOptions. Se reemplazaron por TripModel, TripModelCallback, TripModelManager y TripModelOptions.

  • Las apps que usan el SDK de consumidor ahora deben tener un targetSdkVersion de nivel de API 31 o superior, y un compileSdkVersion de nivel de API 33 o superior.

  • Las apps que usan el SDK de consumidor ahora deben habilitar la compatibilidad con la biblioteca de Java 8. Consulta https://developer.android.com/studio/write/java8-support para obtener instrucciones sobre cómo actualizar.

  • Las apps que usan Proguard o Dexguard deben migrar a R8. Consulta https://developer.android.com/build/shrink-code para obtener más información.

  • Las apps que usan el SDK de consumidor deben habilitar la expansión de sintaxis. Consulta https://developer.android.com/studio/write/java8-support#library-desugaring para obtener instrucciones.

  • Ahora, el método ConsumerApi.initialize() arroja una excepción si se invoca cuando ya se creó una instancia de la API. El Task que muestra ConsumerApi.getInstance() se debe usar para determinar si hay una instancia de la API creada de antemano.

Anuncio: Bajas de APIs

  • Se dieron de baja las clases de anotación Trip.TripStatus y Trip.TripType, y se agregaron las clases de anotación TripInfo.TripStatus y TripInfo.TripType para reemplazarlas.

    • Como parte de este cambio, TripModelCallback#onTripStatusUpdated(TripInfo tripInfo, @Trip.TripStatus int status) dejó de estar disponible y se agregó TripModelCallback#onTripStatusUpdate(TripInfo tripInfo, @TripInfo.TripStatus int status) para reemplazarlo.

    • Como parte de este cambio, TripInfo#getTripStatus() dejó de estar disponible y se agregó TripInfo#getCurrentTripStatus() para reemplazarlo.

    • Como parte de este cambio, TripInfo#getTripType() dejó de estar disponible y se agregó TripInfo#getCurrentTripType() para reemplazarlo.

  • Se dejó de usar la clase Trip.

Otros cambios y correcciones de errores

  • Admite la solicitud del procesador más reciente del SDK de Maps. Consulta Nuevo procesador de mapas para obtener más detalles.

  • Proporciona compatibilidad con el SDK de Maps desde la versión 18.1.0 (inclusive) hasta la versión 19.0.0 (exclusive).

  • Se corrigió el error "se superó el plazo" para las comunicaciones internas entre el SDK y el backend de Google.

  • Se corrigió un problema de renderización para pantallas de tamaño pequeño y el modo de pantalla en pantalla.

Guía de migración

1.99.1 (31 de agosto de 2023)

Correcciones de errores

  • Se corrigió una falla que se producía cuando se destruía la actividad o el fragmento del host del SDK.

  • Se corrigió la falla que se producía cuando las dimensiones de MapView eran 0 (ya sea la altura o el ancho).

  • Se corrigió la falla que se producía cuando se proyectaba la ubicación del vehículo en la polilínea de la ruta.

Mejoras

  • Evita que el SDK falle cuando se realiza la carga lateral de la aplicación alojada y no están presentes los recursos visuales predeterminados.

1.99.0 (22 de junio de 2023)

Correcciones de errores

  • Se corrigió un problema de renderización para pantallas de tamaño pequeño y para el modo de pantalla en pantalla.

  • Se corrigieron los parpadeos del vehículo durante el uso compartido del viaje.

1.2.1 (7 de junio de 2023)

Correcciones de errores

  • Se corrigió un error que causaba que el vehículo parpadeara durante el uso compartido del viaje.

1.2.0 (21 de noviembre de 2022)

Correcciones de errores

  • Se corrigió un error que provocaba que se informara tráfico vacío en la devolución de llamada onTripActiveRouteTrafficUpdated.

Nuevas funciones

  • Las "polilíneas adaptadas al tráfico" ahora tienen disponibilidad general.

1.1.2 (27 de octubre de 2022)

Correcciones de errores

  • Se solucionó un error que causaba que la polilínea de la ruta desapareciera después de que se iniciaba un JourneySharingSession más de una vez para un TripModel.

Anuncio: Se suspenderá la compatibilidad con Android 5 (25 de julio de 2022)

En el caso de la versión 1.1.1 del SDK, proporcionaremos un año adicional de asistencia para las apps que se ejecutan en Android 5, tanto para los niveles de API 21 como 22.

Qué significa esto:

  • El SDK de consumidor que se ejecuta en tus apps para Android admitirá un mínimo de Android 5 (nivel de API 21) hasta el 30 de junio de 2023.

  • Después del 30 de junio de 2023, solo admitiremos los niveles de API de Android 23 y posteriores. En otras palabras, dejaremos de admitir los niveles de API 21 y 22 de Android en todas las versiones del SDK después de esa fecha. Esto significa que no se corregirán los errores relacionados con Android 21 o 22 en ninguna versión del SDK (incluida la 4.x) y no garantizamos que los SDKs se comporten correctamente.

v1.1.1 (25 de julio de 2022)

Cambio de dependencia

  • Se cambia el nivel de API de Android mínimo admitido a 21.

Versión 1.1.0 (28 de abril de 2022)

  • Se realizaron mejoras internas.

v1.0.19 (17 de marzo de 2022)

Correcciones de errores

  • Se corrigió una fuga de memoria en la clase ConsumerApi.

v1.0.14 (30 de noviembre de 2021)

El nivel de API de Android mínimo admitido ahora es 23.

Cambios en la API

  • Cambios en las clases ConsumerTrip y ConsumerTripManager

    • Se limpiaron algunos nombres de métodos para que su significado sea más claro y para alinearlos con la plataforma de iOS.
  • Se realizaron cambios en ConsumerTripCallback, ConsumerTrip y TripInfo.

    • Se cambiaron algunos nombres de clases para que coincidan con los de iOS. Se introdujeron TripModel, TirpModelManager y TripModelOptions para dar de baja ConsumerTrip, ConsumerTripManager y ConsumerTripOptions.

    • Se limpiaron algunos nombres de métodos. Se revisaron o agregaron comentarios de JavaDoc a los métodos para transmitir significados más claros.

    • Se mejoró el manejo de errores.

Personalización de diseño

  • Wrappers heredados obsoletos

    • MarkerStyleOptions y PolylineStyleOptions dejaron de estar disponibles y se reemplazaron por MarkerOptions y PolylineOptions, que se comparten con el SDK de Maps.

Supervisión de fallas

  • Se agregaron la detección y el registro de fallas.

    • Se agregó una opción para que puedas inhabilitar esta función. Esto se hizo como parte de una iniciativa más amplia de Geo para la supervisión de fallas.

Cambios de autenticación

  • Quitar los métodos innecesarios de las interfaces de Authentication
    • Se quitó el parámetro ServiceType.

v0.9.28 (18 de mayo de 2021)

Cambios en la API

  • Se actualizaron todos los métodos ConsumerTripCallback para usar TripInfo como parámetro.
  • Se agregó ConsumerTrip.isRefreshing(), que indica si ConsumerTrip se actualiza de forma activa con información de viaje nueva de Fleet Engine.
  • Se agregó ConsumerTripCallback.onTripRemainingRouteDistanceUpdated().
  • Se agregó ConsumerTripCallback.onTripRemainingRouteUpdated().
  • Reemplaza los tipos de datos que se devuelven de Guava (ImmutableSet, ImmutableList) por clases equivalentes de java.util.
  • Cambios en el nombre del paquete:

    • com.google.android.libraries.ridesharing.common.AuthTokenContext -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenContext
    • com.google.android.libraries.ridesharing.common.AuthTokenFactory -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenFactory
    • com.google.android.libraries.ridesharing.common.FleetEngineServiceType -> com.google.android.libraries.ridesharing.consumer.auth.FleetEngineServiceType - com.google.android.libraries.ridesharing.common.model.Trip

                                  ->
                                                                  com.google.android.libraries.ridesharing.consumer.model.Trip
      
                                  -   com.google.android.libraries.ridesharing.common.model.Vehicle
      
                                                          ->
                                      com.google.android.libraries.ridesharing.consumer.model.Vehicle
      

Cambios en la implementación

  • Se corrigió una condición de carrera en la que el SDK podía fallar debido a interacciones con el mapa antes de que estuviera listo.
  • El SDK ya no contiene una copia sin ofuscar de io.grpc.
  • Se corrigió un error que causaba que las polilíneas de tráfico parpadearan en ciertos dispositivos. Los segmentos de tráfico ahora tendrán extremos redondeados.

v0.9.15 (7 de octubre de 2020)

Cambios en la API

  • En esta versión, se presentan las polilíneas con reconocimiento del tráfico. - Se agregaron TripInfo.getActiveRouteTraffic() y TripInfo.getRemainingRouteTraffic().
    • Se agregaron ConsumerTripCallback.onTripActiveRouteTrafficUpdated() y ConsumerTripCallback.onTripRemainingRouteTrafficUpdated() para indicar cuándo cambió el tráfico.
    • Se agregó PolylineStyleOptions para la personalización del tráfico (setTrafficEnabled(), setTrafficColorNoData(), setTrafficColorNormal(), setTrafficColorSlow(), setTrafficColorTrafficJam()).
    • Se expuso PolylineStyleOptions.TRAFFIC_Z_INDEX_ADDITION.
    • Se agregó TripWaypoint.getTrafficData().
    • Se agregó el tipo de datos TrafficData.
    • Se agregó ConsumerController.hideAllSessions(). ConsumerController.showSession() ya no acepta valores nulos como argumento.

v0.9.9 (15 de julio de 2020)

Cambios en la API

  • Este es un cambio importante que presenta una arquitectura modularizada con una relación más clara entre la capa de solo datos (por ejemplo, ConsumerTripManager) y la capa de la interfaz de usuario (por ejemplo, JourneySharingSession). Para obtener información sobre cómo migrar a la nueva arquitectura, consulta la Guía de migración de modularización. - Ahora, el objeto ConsumerTrip se obtiene de ConsumerTripManager.getTrip().
    • Se cambió el nombre de ConsumerTrip.unregisterCallback por ConsumerTrip.unregisterTripCallback.
    • Se cambió el nombre de ConsumerTrip.isCallbackRegistered por ConsumerTrip.isTripCallbackRegistered.
    • Se agregaron ConsumerTrip.setConsumerTripOptions() y ConsumerTrip.getConsumerTripOptions().
    • Se quitó ConsumerTrip.setAutoRefreshInterval().
  • Se quitaron las APIs que no son de uso compartido de viajes.
    • Se quitó el mapa de densidad de vehículos.
    • Se quitó el estado de vista previa del viaje.
    • Se quitó el estado de selección de retiro.
    • Se quitó el estado de selección de destino.
    • Se quitaron los siguientes tipos de marcadores: SELECTED_PICKUP_POINT, SUGGESTED_PICKUP_POINT, HIGHLIGHTED_PICKUP_POINT y SELECTED_DROPOFF_POINT.
  • Se cambiaron OnConsumerMarkerClickCallback y ConsumerMapReadyCallback de interfaces a clases abstractas.
  • Se agregaron ConsumerController.getCameraUpdate(), ConsumerController.isAutoCameraEnabled() y ConsumerController.enableAutoCamera().
  • Se quitaron el FAB personalizado y sus métodos asociados (ConsumerController.isMyLocationFabEnabled y ConsumerController.setMyLocationFabEnabled).

Cambios en la implementación

  • Un ConsumerTripCallback, ya sea que esté registrado con o sin un LifecycleOwner, ya no cancela el registro automáticamente en TripStatus.COMPLETE o TripStatus.CANCELED.
  • AutoCamera ahora está habilitada de forma predeterminada y nunca se vuelve a habilitar ni se inhabilita. Anteriormente, AutoCamera se volvía a habilitar automáticamente en TripStatus.ARRIVED_AT_PICKUP y se inhabilitaba cuando el usuario interactuaba con el mapa durante el uso compartido del viaje.
  • Se realizaron las siguientes mejoras en la animación del vehículo para compartir el viaje:
    • La animación de uso compartido de viajes ahora controla la situación en la que un vehículo puede volver legítimamente por una ruta ya recorrida.
    • Ahora, el vehículo se animará en línea recta en lugar de interpolar la ruta entre puntos cuando se determine de forma algorítmica que es apropiado.
  • Ya no se requieren los permisos de FINE_LOCATION.

Otros cambios

  • Se actualizaron las siguientes versiones de dependencias:
    • com.google.android.datatransport:transport-api:2.2.0
    • com.google.android.datatransport:transport-backend-cct:2.2.0
    • com.google.android.datatransport:transport-runtime:2.2.0

v0.9.1 (23 de marzo de 2020)

Cambios en la API

  • Se agregaron TripInfo.getVehicleId(), TripInfo.getNumberOfPassengers(), TripInfo.getIntermediateDestinationIndex(), TripInfo.getTripActiveRoute() y TripInfo.getTripRemainingRoute().
  • Se agregó la clase options que se usa durante la inicialización de ConsumerApi, que permite que la dirección FleetEngine se establezca de forma dinámica. Si no se llama a la API con un valor FleetEngine, se intenta recuperar del manifiesto de Android o, de lo contrario, se recurre al valor predeterminado.

Mejoras

  • La polilínea de la ruta no se muestra cuando el estado del viaje es ARRIVED_AT_PICKUP.
  • Se mejoró el seguimiento de vehículos fuera de ruta (se requiere el SDK de Driver 1.15):
    • El seguimiento de vehículos no ajusta el vehículo a la ruta cuando este pasa por el punto de partida.
    • El seguimiento de vehículos permite mostrar el vehículo fuera de la ruta, por ejemplo, en estacionamientos no asignados.
  • El ícono del vehículo ahora se actualiza cuando el destino del conductor no coincide con el destino en Fleet Engine.

v0.8.6 (16 de diciembre de 2019)

Cambios en la API

  • Se agregó TripInfo.getVehicleLocation().

  • ConsumerMapView ya no es definitivo.

Cambios en la implementación

  • La distancia restante del tramo activo ahora se calcula con la distancia del servidor (informada por el conductor y la ruta estática, cuando corresponda) en lugar de la fijación local. Este cambio produce valores de distancia restante más precisos.

Otros cambios

  • Se requieren dependencias nuevas. Consulta el archivo .pom para obtener más detalles.

    • com.google.android.datatransport:transport-api:2.0.0
    • com.google.android.datatransport:transport-backend-cct:2.0.2
    • com.google.android.datatransport:transport-runtime:2.0.0
  • Se agregaron registros para la latencia de la solicitud de viaje.

  • Se agregaron registros para los errores de respuesta de viajes.

Notas

  • Desde la versión 0.8.1, el SDK de consumidor para Android se envía como un archivo ZIP con Jetifier. Para obtener información sobre cómo revertir el proceso de Jetifier, consulta Jetifier: Modo inverso.

v0.8.1 (13 de septiembre de 2019)

Nuevas funciones

Cambios en la API

  • Se agregó ConsumerController.disableAutoCamera() como la función opuesta a centerMapForState().

  • Ahora, VehicleLocation.getUpdateTime() devuelve un valor Long que representa la marca de tiempo (en milisegundos).

  • Se simplificó la interfaz AuthTokenFactory para exponer un solo método de generación de tokens. Se cambió AuthTokenFactory de una interfaz a una clase abstracta para habilitar la retrocompatibilidad en Java 7. Este cambio es retrocompatible, pero los métodos antiguos para la generación de tokens de servicio único dejaron de estar disponibles y, con el tiempo, se quitarán.

Cambios en la implementación

  • Los recursos ahora están centrados en el ícono, lo que elimina el desplazamiento de la sombra.

  • setState a JOURNEY_SHARING onStartTripMonitoring() en lugar de esperar el estado del viaje supervisado.

  • Siempre devuelve datos para la primera actualización de datos del viaje, incluso cuando los datos del viaje no están sincronizados.

  • Se agregó Android Map Utils como dependencia proporcionada.

Correcciones de errores

  • Se corrigió la sintaxis de exportación de ProGuard dañada para grpc keep.

v0.7.0 (7 de agosto de 2019)

Nuevas funciones

  • Se agregó compatibilidad con varios destinos para el uso compartido de viajes.

Cambios en la API

  • Se agregaron métodos nuevos para ConsumerTripCallback.

    • onTripIntermediateDestinationsUpdated().
    • onTripETAToNextTripWaypointUpdated().
  • Nuevos métodos ConsumerController

    • getIntermediateDestinations().
    • setIntermediateDestinations(List<TerminalLocation> intermediateDestinations).
  • Nuevo TripStatuses.

    • TripStatus.ENROUTE_TO_INTERMEDIATE_DESTINATION.
    • TripStatus.ARRIVED_AT_INTERMEDIATE_DESTINATION.
  • Se agregaron nuevos métodos get de TripWaypoint.

    • getETAMillis().
    • getDistanceMeters().
  • Se agregó la clase TripInfo.

    • Puedes obtener TripInfo para el viaje activo con ConsumerTripManager.getActiveTripInfo().
  • Se agregó WaypointType.INTERMEDIATE_DESTINATION.

  • Se agregó MarkerType.TRIP_INTERMEDIATE_DESTINATION.

  • Se creó ConsumerMapState.JOURNEY_SHARING a partir de la combinación de ConsumerMapStates, ENROUTE_TO_PICKUP, ARRIVED_AT_PICKUP, ENROUTE_TO_DROPOFF y COMPLETE.

    • Se actualizó la tabla StateChangeCallbacks.

    • Se agregó onStateJourneySharing().

    • Se quitaron onStateWaitingForPickup(), onStateDriverArrived(), onStateEnroute() y onStateEndofTrip().

Correcciones de errores

  • Se corrigió un error por el que la ruta no se recortaba a la ubicación del vehículo cuando la supervisión del viaje comenzaba en medio de un viaje activo (no al principio de la ruta).

  • Se corrigió un error por el que no se invocaban las devoluciones de llamada de viaje para los objetos de escucha registrados en TripManager después de que TripManager ya había recuperado los datos del viaje.

  • El zoom de la cámara ahora solo incluye la ruta activa y el siguiente punto de referencia del viaje (punto de referencia que pertenece al viaje). Incluso si el tramo restante es visible, el zoom nunca lo incluirá. Anteriormente, el punto de llegada se incluía en el zoom cuando el vehículo estaba en camino al punto de partida o cuando llegaba a él. Esto ya no es así.

Mejoras

  • Propaga el punto de referencia restante cero con los datos del conductor (la lista de puntos de referencia restantes se devuelve desde ConsumerTripCallback.onTripRemainingWaypointsUpdated y TripInfo.getRemainingWaypoints()).

  • Actualiza todas las horas estimadas de llegada de los puntos de referencia restantes cuando cambie la hora estimada de llegada al primer punto de referencia de la lista.

  • Vuelve a habilitar la cámara automática de forma forzada solo cuando el conductor llegue al punto de partida. Anteriormente, la cámara automática se restablecía al estado habilitado para cada cambio de estado del viaje. La cámara automática sigue habilitada de forma predeterminada. La cámara automática no se volverá a habilitar si se establece un nuevo viaje activo sin una llamada nueva a startTripMonitoring().

v0.6.1 (26 de junio de 2019)

Nuevas funciones

  • Compatibilidad con Carpool para compartir viajes

Cambios en la API

  • ConsumerController.getConsumerMapStyle() ahora devuelve ConsumerMapStyle en lugar de Task<ConsumerMapStyle>.

  • Se agregó PolylineStyle.setZIndex().

Correcciones de errores

  • Ahora, la animación de la ruta solo se produce cuando el segmento de la ruta está sincronizado, lo que mejora la experiencia del usuario.

  • Se corrigió el "parpadeo" del vehículo durante la interpolación de la animación cuando las actualizaciones de la ubicación del conductor están cerca.

  • Se corrigió un error por el que el vehículo comenzaba al principio de la ruta en lugar de en su ubicación más actualizada cuando la supervisión del viaje comenzaba en medio de un viaje activo.

  • Muestra la polilínea de la ruta activa por encima de la ruta restante cuando se superponen.

Mejoras

  • Ahora, expón la clase Status de gRPC con métodos no ofuscados.

v0.5.1.01 (17 de mayo de 2019)

Nuevas funciones

  • Asistencia consecutiva para el uso compartido de viajes.

Cambios en la API

  • Nueva clase ConsumerController.

PolylineType

Valor anterior Valor nuevo
TRIP_PREVIEW_AUTO_ROUTE PREVIEW_AUTO_ROUTE
TRIP_PREVIEW_TAXI_ROUTE PREVIEW_TAXI_ROUTE
TRIP_PREVIEW_TRUCK_ROUTE PREVIEW_TRUCK_ROUTE
TRIP_PREVIEW_TWO_WHEELER_ROUTE PREVIEW_TWO_WHEELER_ROUTE
TRIP_ROUTE ACTIVE_ROUTE
REMAINING_ROUTE

ConsumerTripCallback

Valor anterior Valor nuevo
onTripRouteUpdated onTripActiveRouteUpdated
onTripRemainingDistanceUpdated onTripActiveRouteRemainingDistanceUpdated
onTripRemainingWaypointsUpdated()

ConsumerController

  • Ahora puedes establecer devoluciones de llamada para los estados sin ingresar a ellos.
Método Devolución de llamada
startPickupSelection setPickupSelectionCallback
startDropoffSelection setDropoffSelectionCallback
startTripPreview setTripPreviewSelectionCallback
  • ConsumerController.setLanguage(String languageCode) te permite establecer el idioma que se usa en las llamadas a Fleet Engine (por ejemplo, para las descripciones de los puntos de partida).

Mejoras

  • El estado de selección de destino ahora tiene un pin que se puede arrastrar.
  • Se quitó la animación de la cámara en el estado INITIALIZE.
  • Se reemplazó ManagedChannelBuilder con AndroidChannelBuilder.