Esta sección contiene notas de la versión del SDK de Driver para Android.
Anuncio: Se suspenderá 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, suspenderemos la compatibilidad con Android 6 y 7 (niveles de API 23, 24 y 25) en las próximas versiones principales del SDK de Driver para Android.
Las versiones del SDK de Driver para Android que se lanzarán a partir del cuarto trimestre de 2025 admitirán un mínimo de Android 8 (nivel de API 26). Las versiones anteriores del SDK seguirán admitiendo 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 compilaciones nuevas de tu app no serán compatibles con Android 6 y 7.
Especifica una versión del SDK de Driver para Android en las dependencias de compilación de tu aplicación para controlar cuándo aumentas el SO mínimo compatible para las versiones nuevas de tu app.
v6.0.0 (25 de noviembre de 2024)
Correcciones de errores
- Se corrigió el problema por el que los conductores recibían errores de gRPC con el código "INTERNAL" y un mensaje de "Panic! Este es un error".
- Mejora interna para reducir los errores de conexión de actualización de ubicación, en especial, cuando el dispositivo cambia de red. Se lanzará de forma progresiva (a partir del 0%) una vez que se integre la versión.
Actualizaciones de API
- Se quitó la interfaz obsoleta
StatusListener
.
Cambios de dependencia y configuración
- Quita la dependencia de
glide:cronet-integration
en el archivo POM.xml. - Se actualizaron las versiones compatibles del SDK de Navigation a la versión 5.x.
- A partir de la versión 6.0.0 del SDK de Driver para Android, las apps deben actualizarse a Kotlin 2.0.
- targetSdk ahora es el nivel de API 34. Este es un requisito para todas las apps que se implementen en Google Play Store a partir de agosto de 2024. Consulta Cumple con los requisitos de nivel de API objetivo de Google Play.
v5.99.0 (20 de septiembre de 2024)
Correcciones de errores
- Se corrigió el problema por el que los conductores recibían errores de gRPC con el código "INTERNAL" y un mensaje de "Panic! Este es un error". Se lanzará de forma progresiva (a partir del 0%) una vez que se integre la versión.
- Mejora interna para reducir los errores de conexión de actualización de ubicación, en especial, cuando el dispositivo cambia de red. Se lanzará de forma progresiva (a partir del 0%) una vez que se integre la versión.
Cambios de dependencia y configuración
- Quita la dependencia de
glide:cronet-integration
en el archivo POM.xml.
v5.0.0 (12 de septiembre de 2023)
Cambios de dependencia y configuración
- Se actualizó el SDK de Navigation a la versión 5.x.
- Se actualizó
minSdkVersion
al nivel de API 23. - Se actualizó la versión de Kotlin a la 1.9.0.
- Se agregó una dependencia en Room.
* Las apps que usan el SDK de Driver ahora deben tener
targetSdkVersion
del nivel de API 31 o superior. - Las apps que usan el SDK de Driver ahora deben habilitar la compatibilidad con la biblioteca de Java 8. Consulta https://developer.android.com/studio/write/java8-support para obtener instrucciones para la actualización.
- 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 Driver deben habilitar la expansión de sintaxis. Consulta https://developer.android.com/studio/write/java8-support#library-desugaring para obtener instrucciones.
Correcciones de errores
- Se solucionó un problema con la sincronización de disableLocationTracking.
- Se presentó la nueva interfaz DriverStatusListener que informa una causa en las actualizaciones de estado de excepción.
- Se corrigió el problema de los conductores que permanecen inmóviles (disponible a partir de la versión 4.99.0).
v4.99.0 (9 de agosto de 2023)
- Admite una variedad de versiones para la dependencia de NavSDK. ** Admite desde la versión 4.5.0 hasta la 5.0.0 (sin incluirla).
- Evita que la hora de llegada estimada disminuya por sí sola cuando el vehículo está detenido. Este cambio se lanzará de forma gradual como un experimento, por lo que no todas las aplicaciones lo verán de forma simultánea.
v4.5.0 (12 de mayo de 2023)
- Se actualizó la dependencia del SDK de Navigation a la versión 4.5. Ten en cuenta que los IDs del grupo y del artefacto del SDK de Navigation cambiaron.
v4.4.3 (20 de marzo de 2023)
Cambio de dependencia
- Actualiza la dependencia del SDK de Navigation a la versión 4.4.1.
v4.4.2 (15 de febrero de 2023)
Correcciones de errores
Mejora el tiempo de recuperación de la red cuando el SDK encuentra un problema de conexión temporal. Esta es una solución experimental.
Se descartarán las solicitudes
UpdateVehicle
que solo contengan una ubicación "sin procesar".Se corrigió una condición de carrera en la API ALPHA de "Descripción general de la ruta".
v4.4.1 (18 de noviembre de 2022)
Correcciones de errores
- Se corrigió un error en la lógica de carga de tráfico.
Cambios adicionales
- Se realizaron mejoras internas en los encabezados de solicitud y los informes de códigos de estado.
v4.4.0 (21 de septiembre de 2022)
Correcciones de errores
- Se corrigió un error que impedía que se quitara la notificación "Conducir con Google Maps" si no se borraba la instancia de la API.
Cambio de dependencia
- Actualiza la dependencia del SDK de Navigation a la versión 4.2.2.
v4.3.0 (24 de agosto de 2022)
Mejoras internas.
Anuncio: Se suspenderá la compatibilidad con Android 5 (21 de julio de 2022)
En el caso de nuestra versión más reciente del SDK (v4.2.0), proporcionamos un año adicional de compatibilidad para las apps que se ejecutan en Android 5, para los niveles de API 21 y 22.
Qué significa:
- El SDK de Navigation y el SDK de Driver que se ejecutan en tus apps para Android admitirán 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 superiores. 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.
Este aviso anula el aviso de suspensión de la compatibilidad con Android 21 y 22 del 21 de junio de 2021 y el aviso de suspensión de la compatibilidad con Android 23, 24 y 25 del 18 de octubre de 2021.
v4.2.0 (8 de junio de 2022)
Cambio de dependencia
- Actualiza la dependencia del SDK de Nav a la versión 4.1.3.
- Regresa el nivel de API de Android mínimo admitido a 21.
v4.1.0 (28 de abril de 2022)
Actualizaciones de API
Se cambió el nombre de la propiedad
parentId
del objetoTask
atrackingId
. La propiedad antigua aún existe por el momento, pero está obsoleta.
v4.0.0 (29 de noviembre de 2021)
El nivel de API de Android mínimo admitido para esta versión es 23.
Actualizaciones de API
En esta versión, el SDK de Driver para Android se actualizó con los siguientes cambios.
Cambio en la API de VehicleStops
Los objetos VehicleStop
ahora hacen referencia a una lista de objetos TaskInfo
en lugar de una lista de objetos Task
. Si necesitas el estado de la tarea, te recomendamos que le hagas un seguimiento en el código de la aplicación.
Se agregó una clase nueva:
TaskInfo
Se reemplazó la función
getTasks
deVehicleStop
por la funcióngetTaskInfoList
.Se reemplazó la función
setTasks
deVehicleStop.Builder
por la funciónsetTaskInfoList
.
Supervisión de fallas
Se agregaron informes y supervisión de fallas para ayudar a mejorar la estabilidad del SDK.
Esta función está habilitada de forma predeterminada, pero puedes inhabilitarla si llamas a setAbnormalTerminationReportingEnabled()
y le pasas un valor de false
antes de inicializar el SDK.
- Se agregó la función
setAbnormalTerminationReportingEnabled
aDriverApi
.
getRemainingVehicleStops asíncrono
- Se cambió la función
getRemainingVehicleStops
deDeliveryVehicleReporter
para que devuelva un Future<List<VehicleStop>> en lugar de una List<VehicleStop>.
Autenticación
Se quitaron las propiedades innecesarias de la interfaz AuthTokenContext
.
ServiceType
dejó de estar disponible. Ahora solo debes obtener reclamos para el ID del vehículo y el ID de la tarea incluidos, en lugar de depender de ServiceType
.
Se quitó
ServiceType
deAuthTokenContext
.Se quitó
getServiceType()
deAuthTokenContext
.Se quitó
setServiceType
deAuthTokenContext.Builder
.
18 de octubre de 2021: Se inhabilitó la compatibilidad con los niveles de API 23, 24 y 25
Leer el anuncio del 18 de octubre
En respuesta a los cambios en nuestras dependencias internas, los niveles de API de Android 23, 24 y 25 (Android 6, 7.0 y 7.1) no serán compatibles con las versiones nuevas de los SDKs de Navigation y Driver para Android a partir del tercer trimestre de 2022.
Los SDKs de Navigation y Driver para las versiones de Android que se lanzaron a partir del tercer trimestre de 2022 solo admitirán dispositivos que ejecuten un nivel mínimo de API de Android 26.
Las versiones de apps compiladas con la versión 4.x o una anterior de los SDK de Navigation y Driver para Android seguirán funcionando en dispositivos con el nivel de API de Android 25 y versiones anteriores.
v3.0.4 (28 de julio de 2021)
Funciones
Con esta versión, el SDK de Driver se separa oficialmente del SDK de Navigation. Consulta la guía de migración para obtener más detalles.
Actualizaciones de API
Se agregaron los siguientes métodos:
`RidesharingDriverApi.getDriverSdkVersion()`Estabilidad y correcciones de errores
Informar errores PERMISSION_DENIED
en lugar de clasificarlos como errores de conexión
Anuncio de baja (21 de junio de 2021)
En este anuncio, se describen las bajas del SDK de Driver para Android y del SDK de Navigation para Android a partir de la fecha indicada anteriormente. Este anuncio también se envió como un anuncio de servicio obligatorio (MSA) a los clientes afectados.
El SDK de Nav/Driver para Android se convertirá en el SDK de Navigation para Android v3.x y el SDK de Driver para Android v3.x para Android (objetos binarios divididos)
Para simplificar la integración de los clientes y acelerar nuestra capacidad de ofrecer funciones útiles, dividiremos el SDK de Navigation para Android y el SDK de Driver para Android en dos objetos binarios diferentes:
- El SDK de Navigation para Android, que proporcionará la funcionalidad de navegación y planificación de ruta para tus conductores
- El SDK de Driver para Android, que te permitirá aprovechar los servicios web con estado de Fleet Engine para el progreso y la asignación de viajes o tareas.
Ten en cuenta que el SDK de Driver para Android tiene una dependencia obligatoria en el SDK de Navigation para Android para las funciones principales de planificación de ruta.
¿Cuáles son los cambios?
Los cambios más importantes de la versión 3 son los siguientes:
- Dos objetos binarios en lugar de uno.
- Definiciones de paquetes más claras para las clases del SDK de Driver para Android.
- El SDK de Navigation para Android incluye el SDK de Maps para Android como parte del empaquetado (a partir de la versión 2 del SDK de Navigation para Android).
- Esto permite que los mapas y las funciones de navegación coexistan en el mismo mapa (como dibujar polilíneas en un NavigationView) y reduce el uso de la memoria, ya que se usa un solo mapa en lugar de dos.
- El SDK de Navigation para Android 3.0 no tiene paridad total de funciones con el SDK de Navigation para Android, pero la versión 3.2 resolverá la mayoría de los problemas. Consulta ¿Qué puedo hacer y cuándo? para obtener más información.
- Registros que nos permitirán depurar los problemas que puedas encontrar.
Los siguientes métodos también se quitaron en la versión 3, ya que anteriormente se habían marcado como obsoletos y para los que ya existe una solución alternativa:
- Los siguientes métodos del SDK de Nav/Driver dejaron de estar disponibles en la versión 1.16, que se lanzó el 10 de agosto de 2020, y se quitaron en la versión 3.0:
Waypoint#fromLatLng(*)
Waypoint#fromPlaceId(*)
Navigator#startGuidance(resumeIntent)
NavigationApi#initForegroundServiceManager(*)
- Para mayor claridad, ten en cuenta que se quitaron varios métodos en la transición de la versión 1 a la 2. La mayoría de estas fueron consolidaciones de clases duplicadas entre el SDK de Navigation para Android y el SDK de Maps para Android. Consulta la guía de migración para comprender mejor estos cambios.
Baja de las versiones 1.x del SDK de Driver para Android y del SDK de Navigation para Android
La versión 1 del SDK de Nav/Driver se lanzó en 2018 y, con el lanzamiento inminente de nuestras versiones 3, es hora de dar de baja la versión 1 para evitar la insostenibilidad de admitir muchas versiones principales.
El tiempo que ahorramos por no tener que admitir esta versión adicional nos permitirá admitir mejor la versión principal más reciente y compilar más funciones que son importantes para nuestros clientes.
Por lo tanto, el SDK de Nav/Driver v1.x dejó de estar disponible y ya no se mantendrá después del 21 de junio de 2022.
Tómate un momento para ver cómo funcionan las bajas en las versiones de SDK.
Fin de la compatibilidad con Android 21 y 22 para el SDK de Navigation y Driver
Leer el anuncio revocado
La próxima versión 4.0 del SDK de Navigation para Android y del SDK de Driver para Android admitirá, como mínimo, [Android 6.0 (nivel de API 23)](https://developer.android.com/studio/releases/platforms#6.0){:.external}. La versión mínima compatible actual es Android 5.0 (nivel de API 21). Prevemos lanzar la versión 4.0 en el cuarto trimestre de 2021. Esto significa lo siguiente:
- Las versiones de apps compiladas con versiones anteriores a la v4.x seguirán funcionando en dispositivos Android 21 y 22. Tus apps para conductores que hayan integrado nuestros SDKs actuales seguirán funcionando en dispositivos con Android 21 y versiones posteriores. Esto es lo mismo que antes.
- Las versiones de la app compiladas con el SDK de Driver para Android y el SDK de Navigation para Android v4.x (se espera que estén disponibles en el cuarto trimestre de 2021, sujeto a cambios) y versiones posteriores no se podrán instalar en dispositivos con Android 21 y 22. v4.x se ejecutará en Android 6.0 como mínimo (nivel de API 23), por lo que los conductores solo podrán recibir las versiones de tu app compiladas con la próxima v4.x si tienen dispositivos con Android 23 o versiones posteriores. Es decir, tanto los cambios relacionados con el SDK como los cambios que hayas realizado en la app no llegarán a los conductores con dispositivos que ejecuten Android 21 y 22.
En la siguiente tabla, se explican las versiones del SDK de Navigation para Android 3 y del SDK de Driver para Android 3 a las que te recomendamos actualizar, junto con la fecha en la que estarán disponibles.
¿Qué funciones de la plataforma de Driver usas? | ¿Usas estas funciones? | Luego, las primeras versiones disponibles a las que debes actualizar son las siguientes: | Disponibilidad esperada (sujeto a cambios) |
Vínculos de migración |
---|---|---|---|---|
Solo Navigation (métodos de NavSDK) |
No | NavSDK v3.0.1 | Ahora | Guía |
Sí | NavSDK v3.5 (proyectado) | Septiembre de 2021 | ||
Seguimiento de Navigation y Fleet Engine (métodos de NavSDK y DriverSDK) | No | SDK de Nav v3.0 y SDK de Driver v3.0 | Guía de migración a la versión 3.0 del controlador disponible en el lanzamiento | |
Sí | NavSDK v3.x y DriverSDK v3.0 |
Para seguir usando los métodos quitados, puedes permanecer en la v1.x, pero sin contar con asistencia o mantenimiento después del 21 de junio de 2022 (consulta la siguiente sección).
Te recomendamos que migres a la versión 3.x. Esto significa lo siguiente:
* La última versión de v1.x se lanzará en el 4ᵉʳ trimestre de 2021 (por lo que v1 estará “congelada” a partir de ese momento).
* Esta última versión se puede parchear durante 6 meses después, hasta el 21 de junio de 2022. Después de este período, no podremos responder solicitudes de errores ni funciones para la versión 1.x.
Tómate un momento para revisar la siguiente tabla y la [guía de migración](/maps/documentation/navigation-sdk-android/v2/migration) para ayudarte a navegar por estos cambios.
¿Qué puedo hacer antes de esa fecha?
Si actualmente tienes… | ¿Usas estas funciones? | Para actualizar ahora | Cómo actualizar en septiembre de 2021 | Vínculos de migración |
---|---|---|---|---|
v1.x (no usa la funcionalidad de FleetEngine.java o Driver) |
No | NavSDK v3.0 | Guía | |
Sí | Sin opción | NavSDK 3.x | ||
v1.x (con la funcionalidad de FleetEngine.java o Driver) |
No | Sin opción | NavSDK 3.x + DriverSDK 3.x |
La guía anterior, además de la guía de migración de Driver v3.0 disponible en el lanzamiento |
Sí |
Te recomendamos que notifiques a los conductores con dispositivos que tengan Android 21 y 22 que actualicen a una versión más reciente de Android (Android 6.0 como mínimo) antes de integrar el SDK de Driver para Android y el SDK de Navigation para Android versión 4.x y versiones posteriores en tu app para conductores.
v1.15.3 (9 de octubre de 2020)
Actualizaciones de API
- El SDK de Driver ahora se suscribe al SDK de Navigation para obtener actualizaciones de tráfico, que se envían a la API de Fleet Engine.
Estabilidad y correcciones de errores
- Se corrigió una falla del entorno de ejecución de gRPC.
v1.15.2
Funciones
Se agregó la capacidad de detener la notificación persistente. Si se detienen los informes de ubicación en la instancia de Fleet Engine, se detiene la guía en Navigator
, no se registran todos los objetos de escucha de navegación y se pausan NavigationFragment
o NavigationView
.
Estabilidad y correcciones de errores
- Se corrigió un error que causaba que se arrojara una excepción si se borraba la instancia de Fleet Engine.
v1.15.1 (12 de mayo de 2020)
Funciones
El análisis preliminar de los datos de la versión 1.15.0 indicó mejoras significativas en los informes de ubicación estables (reducción de las ubicaciones "atascadas"). Esta corrección permite que se continúen generando informes de ubicación mejorados. El problema de ANR no estaba relacionado con estas mejoras.
Estabilidad y correcciones de errores
- Se corrigió un error que, a veces, causaba que se mostrara una línea recta al comienzo de la ruta en la app para consumidores.
- Se corrigió un error que podía generar un error de ANR cuando el SDK informaba ubicaciones. Esto se debió a mejoras de
onArrival()
que eran susceptibles a la contención de bloqueos. Pudimos reproducir los errores de ANR de forma confiable en algunas circunstancias y verificar que las correcciones resolvieron el problema. La app de prueba modificada para producir los errores de ANR se ejecutó durante ocho horas sin errores de ANR después de la corrección.
v1.15.0 (23 de marzo de 2019)
Funciones
- Se introdujo el estado de guía de navegación en los eventos de inicio, fuera de ruta y de llegada para mejorar el seguimiento de la ubicación del vehículo.
- Se agregó la capacidad de seguir obteniendo ubicaciones ajustadas a la ruta independientemente del estado de navegación.
- Se agregó información adicional sobre las ubicaciones ajustadas previamente a la ruta, como la precisión.
Estabilidad y correcciones de errores
- Se aumentó la minSdkVersion de navsdk a 19.
- Se corrigió un error que causaba que no se respetaran los nombres de los puntos de referencia de lat/lng cuando fallaba la geocodificación inversa del servidor.
Versión 1.14.2 (2 de febrero de 2019)
Funciones
- Evita que DriverSDK envíe 0,0 ubicaciones a Fleet Engine (mejores entradas de ubicación de asignación y uso compartido de viajes).
- Registro adicional para mejorar los problemas de ubicación atascada y reducir los resguardos para compartir viajes.
- Ignora las llamadas repetidas a
setLocationReportingInterval()
, a menos que cambie el intervalo. - Se actualizaron los javadocs del método
setReportingInterval()
con el objetivo de desalentar las llamadas repetidas a este método a una velocidad alta en relación con los intervalos que se usan. - Se mejoró la confiabilidad de la ubicación de la API 29.
v1.13.0
Estabilidad y correcciones de errores
- Agrega una dependencia en okhttp que los clientes deberán agregar a sus compilaciones de Gradle.
v1.11.7 (18 de octubre de 2019)
Estabilidad y correcciones de errores
- Las actualizaciones de ubicación ahora continúan después de que se activa
onArrival()
para un destino determinado. - La notificación predeterminada (una cadena constante en el modo de navegación libre) coincide con el esquema de colores establecido para las notificaciones de navegación. Para obtener más información, consulta Notificaciones persistentes compartidas.
- Se solucionó un problema en el que un evento de actualización de ubicación retrasada podía causar una actualización de ubicación falsa, lo que generaba artefactos, como una línea recta al comienzo de una ruta.
v1.11.6 (4 de octubre de 2019)
Actualizaciones de API
- Se introdujo una serie de cambios que garantizan que el SDK de Driver reanude las actualizaciones de ubicación rápidamente después de una falla de red. Una vez que se restablezca la conexión de red, las actualizaciones de ubicación se reanudarán en la próxima actualización de ubicación programada.
Estabilidad y correcciones de errores
setVehicleState()
ahora se muestra de inmediato. La actualización de FleetEngine ahora se realiza en un subproceso en segundo plano. Soluciona un problema de aplicación que no responde (ANR).- Se solucionó un problema que causaba que las rutas de uso compartido de viajes se mostraran como una línea recta con versiones anteriores del SDK para consumidores. Garantiza que el SDK de Driver no agregue puntos de referencia únicos a la ruta.