Ce journal des modifications détaille les nouvelles fonctionnalités et les corrections de bugs de chaque version du SDK Navigation pour Android.
18 octobre 2021 : compatibilité avec les API de niveaux 23, 24 et 25
En réponse aux modifications apportées à nos dépendances internes, les API Android 23, 24 et 25 (Android 6, 7.0 et 7.1) ne seront plus compatibles avec les nouvelles versions des SDK Navigation et Pilot pour Android à compter du troisième trimestre 2022.
Les SDK Navigation et Pilot pour les versions d'Android publiées à partir du troisième trimestre 2022 ne seront compatibles qu'avec les appareils exécutant au moins le niveau d'API Android 26.
Les versions de l'application conçues avec la version 4.x ou antérieure des SDK Navigation et Pilot pour Android continueront de fonctionner sur les appareils équipés d'Android 25 ou version antérieure.
Annonce d'abandon (21 juin 2021)
Cette annonce décrit les abandons du SDK Navigation pour Android et du SDK Pilot pour Android à compter de la date indiquée ci-dessus. Cette annonce a également été envoyée aux clients concernés sous la forme d'une annonce obligatoire sur le service (MSA).
Abandon du SDK de navigation pour Android et du SDK de pilote pour Android v1.x
La version 1 du SDK Nav/Driver a été publiée en 2018. Avec la sortie prochaine de la version v3, il est temps d'abandonner la version 1 afin d'éviter de prendre en charge de nombreuses versions majeures.
Le temps gagné en évitant de devoir gérer cette version supplémentaire nous permet de mieux prendre en charge la dernière version majeure et de créer davantage de fonctionnalités importantes pour nos clients.
Ainsi, la version 1.x du SDK Nav/Driver est désormais obsolète et ne sera plus conservée après le 21 juin 2022.
Prenez quelques instants pour découvrir le fonctionnement des abandons dans les versions du SDK.
Pour en savoir plus sur l'abandon d'Android, consultez les notes de version du SDK Navigation pour Android.
Version 1.51.1 (1er avril 2022)
Stabilité et corrections de bugs
Correction d'un lien hypertexte non fonctionnel dans la boîte de dialogue "Conditions d'utilisation"
Certains clients ont reçu une erreur de boîte de dialogue des conditions d'utilisation lorsque l'activité Android a été détruite. Les clients ne verront plus cette erreur de dialogue lorsqu'une activité est détruite.
Version 1.51 (18 janvier 2022)
Modifications apportées à l'API
Augmente le niveau d'API Android minimal pour le SDK Navigation à 23 et fait passer le niveau d'API cible à 30. Cette version cible est conforme aux exigences de Google Play.
Affiche la polyligne qui suit le chevron de navigation en gris afin d'indiquer que l'utilisateur a déjà parcouru cette section de l'itinéraire.
Version 1.50 (3 novembre 2021)
- Variante Jetified de la version 1.22. Aucune modification n'a été apportée au-delà de l'utilisation des bibliothèques AndroidX.
Version 1.22 (7 octobre 2021)
Stabilité et corrections de bugs
- Correction d'un bug qui empêchait la caméra de suivre la position de l'utilisateur après l'appel de stopNavigation.
- Correction d'un bug lié à l'appareil photo qui provoquait l'apparition du bouton de recentrement en arrière-plan de l'application
- Résout un problème potentiel de fuite de mémoire.
- Correction d'un bug à l'origine de problèmes ANR.
- Empêche le plantage causé par la boîte de dialogue "Conditions d'utilisation".
Abandons
- Remplacement de #setDestinations par le jeton de route en faveur d'une nouvelle API utilisant CustomRoutesOptions.
Nouvelles fonctionnalités
- Ajout d'une fonctionnalité de retrait assisté qui ajoute une nouvelle icône à l'interface utilisateur du pied de page de navigation.
- Intègre les itinéraires personnalisés en deux-roues pour les itinéraires personnalisés.
Version 1.21.1 (13 juillet 2021)
Stabilité et corrections de bugs
- Correction d'un
IllegalStateException
associé à une vérification des conditions préalables trop restrictive dans le code d'implémentation. - Correction d'un
NullPointerException
dansNavigationView.onDestroy()
.
Version 1.21 (23 juin 2021)
Modifications apportées à l'API
- Les écouteurs Speeding sont désormais compatibles avec la navigation sans interface graphique. Cela permet de surveiller la vitesse sans afficher au préalable un
View
ou unFragment
à partir du SDK Navigation.
Stabilité et corrections de bugs
- Amélioration de la robustesse du chargement de tuiles de carte en mode Nuit lors des premières installations d'applications.
Abandons
Les méthodes suivantes ont été abandonnées au profit de Navigator.setSpeedAlertOptions()
:
NavigationView.setSpeedAlertOptions()
SupportNavigationFragment.setSpeedAlertOptions()
NavigationFragment.setSpeedAlertOptions()
Version 1.20.1 (14 juillet 2021)
Stabilité et corrections de bugs
- Correction d'un
IllegalStateException
associé à une vérification des conditions préalables trop restrictive dans le code d'implémentation. - Correction d'un
NullPointerException
dansNavigationView.onDestroy()
.
Version 1.20 (9 mars 2021)
- Ajout d'une dépendance obligatoire. Ajoutez les dépendances suivantes à vos listes de dépendances Gradle pour éviter les plantages de l'environnement d'exécution :
api 'joda-time:joda-time:2.9.9'
.
Stabilité et corrections de bugs
- Correction d'un problème à cause duquel les utilisateurs du SDK Navigation utilisant Joda-Time arrivaient en conflit avec la version obscurcie de Jodatime, qui était contenue dans notre bibliothèque.
- Correction d'un problème à cause duquel le SDK de navigation masquait accidentellement les notifications de l'application consommateur dont il n'est pas propriétaire lors du lancement d'une session de navigation.
Version 1.19 (15 décembre 2020)
Modifications apportées à l'API
Désormais, le DriverSDK envoie toujours les données de trafic à FleetEngine. Auparavant, ce comportement était déterminé par l'option
UpdateVehicleResponse
. Cette option est désormais ignorée.Le constructeur FleetEngine a changé. Des wrappers ont été ajoutés pour
AuthTokenFactory
etStatusListener
.Ajout de deux méthodes à l'API Navigator pour permettre de définir et de supprimer des écouteurs pour les nouvelles sessions de navigation.
Ajout d'une nouvelle méthode à l'API Navigator pour obtenir des ID de transaction pour la session de navigation en cours. Cette API doit être utilisée lorsqu'une nouvelle session de navigation commence et que les ID de transaction changent dans une session de navigation en cours (par exemple, lorsque la liste des segments de parcours est mise à jour).
Version 1.18 (9 octobre 2020)
La méthode
setAbnormalTerminationReportingEnabled(boolean)
a été ajoutée. Cette méthode permet aux utilisateurs de désactiver la surveillance de la détection de plantage.Correction d'un bug qui empêchait l'annulation de l'enregistrement de
LocationListeners
de l'événementonLocationChange
Nous avons corrigé un plantage gRPC qui empêchait l'instanciation de
io.grpc.util.SecretRoundRobinLoadBalancerProvider$Provider
.
Version 1.17 (27 août 2020)
Vous pouvez maintenant transmettre un jeton de route à NavSDK pour récupérer la route représentée par ce jeton. Le jeton de route est associé à une réponse de routage lorsque vous appelez l'API Routes Preferred. La nouvelle API est
Navigator#setDestination(List<Waypoint> destinations, String routeToken)
.Ajout de nouvelles dépendances obligatoires. Ajoutez les dépendances suivantes à vos listes de dépendances Gradle pour éviter les plantages d'exécution:
api 'com.google.android.datatransport:transport-api:2.2.0' api 'com.google.android.datatransport:transport-backend-cct:2.2.0' api 'com.google.android.datatransport:transport-runtime:2.2.0'
Version 1.16 (10 août 2020)
Nouvelles fonctionnalités
Ajout de l'API
Waypoint.Builder.setVehicleStopover
qui active/désactive le déplacement automatique des arrêts sur l'itinéraire lorsque des points de cheminement sont définis à un endroit où il n'est pas possible de s'arrêter.Ajout d'un paramètre
SpeedAlertSeverity
au rappelSpeedAlert
. Utilisez ce paramètre avecSpeedingListener
.
Stabilité et corrections de bugs
Méthode
NavigationApi.cleanUp
obsolète, car des effets secondaires indésirables tels queNullPointerExceptions
entraînent des plantages.Waypoint.fromLatLng()
etWaypoint.fromPlaceId()
rendus obsolètes au profit deWaypoint.builder()
.Abandon de la classe
AddressListener
contenue dansNavigationTransactionRecorder
, car elle n'est pas utilisée.
Version 1.15 (23 mars 2020)
Nouvelles fonctionnalités
Polices/couleurs/icônes personnalisables pour l'en-tête de navigation
Permettre la personnalisation de la couleur des voies recommandées dans l'interface utilisateur de l'en-tête de navigation
Met à jour plusieurs API en suivant le modèle d'ajout-suppression pour définir des rappels/écouteurs. Les méthodes
set*
précédentes ont été abandonnées et seront supprimées dans une prochaine version. Les méthodes obsolètes listées ici:SupportNavigationFragment.setOnNightModeChangedListener
SupportNavigationFragment.setOnRecenterButtonClickedListener
NavigationFragment.setOnNightModeChangedListener
NavigationFragment.setOnRecenterButtonClickedListener
NavigationView.setOnNightModeChangedListener
NavigationView.setOnRecenterButtonClickedListener
Navigator.setArrivalListener
Navigator.setRouteChangedListener
Navigator.setRemainingTimeOrDistanceChangedListener
Stabilité et corrections de bugs
Augmentez la valeur "minSdkVersion" pour navsdk à 19.
Correction d'un bug qui provoquait le non-respect des noms de point de chemin lat/lng en cas d'échec du geocoding inversé côté serveur.
Version 1.14 (2 février 2020)
Nouvelles fonctionnalités
(Bêta) L'opérateur peut influencer les options d'itinéraire suivies par le conducteur en définissant une distance cible pour l'itinéraire dans la requête d'itinéraire. Cette fonctionnalité est en version bêta. Si vous êtes intéressé, veuillez contacter votre représentant du service client pour en savoir plus.
SDK de compilation mis à niveau vers l'API 29.
Stabilité et corrections de bugs
Correction d'un bug dans la boîte de dialogue des conditions d'utilisation qui empêchait l'invite "Accepter" d'être obligatoire pour les conducteurs.
Modification du comportement de gestion des exceptions dans les composants NDK afin d'éviter une situation de plantage.
Version 1.13 (8 novembre 2019)
Nouvelles fonctionnalités
Les conducteurs peuvent désormais recevoir des alertes de vitesse lorsqu'ils dépassent la vitesse maximale autorisée. Vous pouvez personnaliser l'apparence des icônes d'alerte de vitesse. Comme indiqué dans les conditions d'utilisation de Google Maps Enterprise, Google n'offre aucune garantie quant à la qualité des fonctionnalités, y compris la précision des alertes de vitesse. Les alertes de vitesse sont destinées à être fournies à titre d'information uniquement.
Ajout d'une option de routage (
RoutingOptions
) qui vous permet d'afficher d'autres itinéraires pendant l'aperçu de l'itinéraire.Ajout d'une nouvelle perspective de caméra qui affiche une vue plongeante de l'itinéraire, avec l'orientation orientée pour que le véhicule soit toujours orienté vers l'avant. Vous pouvez configurer cette perspective en appelant
NavFragment.getCamera().followMyLocation(Camera.Perspective.TOP_DOWN_HEADING_UP)
.Ajout d'une API (
resetFreeNav()
dansRoadSnappedLocationProvider
) que vous pouvez appeler pour réinitialiser le service de navigation sans frais chaque fois que vous cessez de recevoir des mises à jour de position sur un écouteur enregistré, lorsque la navigation est inactive.
Stabilité et corrections de bugs
- Mise à jour du contenu de la boîte de dialogue "Conditions d'utilisation".
Version 1.12 (7 octobre 2019)
Nouvelles fonctionnalités
Vous pouvez désormais masquer et afficher un ou plusieurs itinéraires alternatifs pendant la navigation.
Vous pouvez désormais spécifier une stratégie de routage dans les requêtes (itinéraire le plus court/le plus rapide).
Ajout de la possibilité de personnaliser entièrement la boîte de dialogue des conditions d'utilisation (taille, couleur, etc.)
Stabilité et corrections de bugs
Correction d'un doublon de classe dans
com.google.http-client
problème.Mise à jour de l'application de démonstration afin d'utiliser le nouveau SDK Places, et gestion de l'application de démonstration
Amélioration de la fréquence d'images de la caméra dans la vue d'ensemble du trajet.
Version 1.11 (28 juin 2019)
Amélioration des performances
- La latence du réseau
setDestination
a été améliorée.
Corrections de bugs
Correction d'une incohérence avec le rappel
onArrival
lors de la navigation de plusieurs points de cheminement.Correction d'un problème où l'arrivée pouvait se déclencher prématurément pour des points de cheminement qui ne se trouvent pas à proximité de la position actuelle.
java.lang.IllegalStateException
- Un appel à
NavigationView.onDestroy
ne peut pas suivre un appel àNavigationView.onCreate
.
- Un appel à
Divers
Mises à jour de licences de logiciels Open Source.
Suppression des accroches de l'heure d'arrivée prévue pour la route afin de supprimer les données redondantes et de simplifier l'interface utilisateur.
Version 1.10.2 (11 avril 2019)
Stabilité et corrections de bugs
- Correction d'un bug qui pouvait déclencher une IllegalStateException lors d'une transition du cycle de vie du fragment: onCreate() vers onDestroy().
Version 1.10 (11 avril 2019)
Fonctionnalités
En-tête de la boîte de dialogue des conditions d'utilisation personnalisable Vous pouvez personnaliser le texte du titre de la boîte de dialogue "Conditions d'utilisation" à l'aide de
showTermsAndConditionsDialog
.Repère de point de cheminement : suppression des caractères alphanumériques des repères de points de cheminement.
Version 1.9 (11 février 2019)
Fonctionnalités
En-tête secondaire : vous pouvez ajouter du contenu personnalisé sous l'en-tête de navigation à l'aide de la fonctionnalité de commandes personnalisées. Consultez la position de
SECONDARY_HEADER
pour la méthodesetCustomControl
.Nouvelles dépendances : ajoutez des dépendances pour Cronet et Glide. Pour en savoir plus, consultez Mettre à jour le script de compilation Gradle de la section "Configuration du projet".
Problèmes connus
- Si l'application de démonstration plante avec java.lang.ClassNotFoundException: did not found "com.example.navigationapidemo.SplashScreenActivity", vous devez mettre à jour la dépendance pour les outils de compilation Gradle vers la version 3.3.1 ou ultérieure.
Dans le fichier
build.gradle
, vérifiez quebuildscript
correspond à l'exemple ci-dessous:
buildscript {
repositories {
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.1'
}
}
Version 1.8.1 (22 janvier 2019)
Stabilité et corrections de bugs
- Résolution du problème de plantage du mode Taxi dans certains modes de l'appareil photo
- Diverses améliorations de stabilité.
Version 1.8 (21 décembre 2018)
Fonctionnalités
Mode taxi – BÊTA: votre application peut utiliser les voies et les voies spécialement conçues pour les taxis afin de fournir un itinéraire et une heure d'arrivée estimée aux véhicules identifiés comme des taxis.
Les zones géographiques suivantes sont actuellement prises en charge:
- Brésil: Rio de Janeiro
- Angleterre: Birmingham, Coventry, London Metro Area et Manchester
- Israël: Tel-Aviv
- Irlande: Dublin
- Russie: Moscou
- Écosse: Glasgow, Édimbourg
- Espagne: Madrid, Barcelone
Stabilité et corrections de bugs
- Fuites de mémoire corrigées
- Performances améliorées
Version 1.7.3 (18 septembre 2018)
Corrections de bugs
NavigationView
peut maintenant passer directement deonStart
àonStop
. Cela ne générera plus deIllegalStateException
.
Version 1.7.2 (16 août 2018)
Fonctionnalités
- Vous pouvez désormais afficher une liste d'itinéraires pendant la navigation pour afficher les changements de direction à venir. La liste des étapes est fournie via
DirectionsListView
. - Vous pouvez maintenant récupérer l'état du trafic à l'aide de la classe
TimeAndDistance
via la méthodegetSeverity
. - Les restrictions sur les plaques d'immatriculation des véhicules sont désormais acceptées.
Corrections de bugs
- Les plantages occasionnels de la boîte de dialogue "Conditions d'utilisation" (qui se manifestent sous la forme de
IllegalStateException
) ont été corrigés. - L'exception NullPointerException avec un message tel que "tentative d'écriture dans un champ ... sur une référence d'objet null" a été corrigée.
- Les identifiants de ressources dans R.txt (auparavant tous 0x1) ont les bonnes valeurs.
Version 1.6.2 (16 juillet 2018)
Corrections de bugs
- Une exception NullPointerException a été corrigée dans
AccessibilityStateUtils.getAccessibilityState()
.
Version 1.6.0 (10 mai 2018)
Corrections de bugs
- Correction d'un bug qui provoquait des appels d'heure d'arrivée incorrects sur les étapes du trajet et les autres itinéraires
- Nous avons corrigé une exception NullPointerException lorsque les valeurs de latitude et/ou de longitude étaient
null
. - Correction d'un bug qui empêchait le chargement de la carte si la boîte de dialogue des conditions d'utilisation était acceptée hors connexion.
- Introduction d'une solution de contournement pour un bug du Gestionnaire de localisation d'Android 7.0 qui générerait un NPE dans le SDK Navigation.
Version 1.5.0 (26 mars 2018)
Fonctionnalités
- Mode Nuit: vous pouvez désormais utiliser le thème Nuit comme mode de navigation. Vous pouvez activer ou désactiver le mode Nuit de manière automatisée, ou laisser le SDK Navigation naviguer automatiquement sur le thème en fonction de l'heure.
- Mode de transport en deux-roues (version bêta) : vous pouvez désormais définir le mode de déplacement sur
TWO-WHEELER
pour obtenir les itinéraires en moto et en trottinette. Cette fonctionnalité n'est actuellement disponible qu'en Inde et en Indonésie. - Limites de vitesse:vous pouvez désormais afficher ou masquer de manière automatisée l'icône de limitation de vitesse (celle-ci ne s'affiche que dans les emplacements où des données sur la limitation de vitesse sont disponibles).
- Commandes de superposition de carte personnalisées:vous pouvez utiliser les commandes de superposition de carte personnalisées pour positionner dynamiquement les éléments de l'interface utilisateur lors de la navigation.
- L'appel
getNavigator()
accepte désormais un contexte d'application afin qu'il puisse être appelé à partir d'un service.
Corrections de bugs
- Plusieurs problèmes de mise en page de texte dans la boîte de dialogue des conditions d'utilisation ont été résolus afin d'améliorer l'affichage des langues qui se lisent de droite à gauche.
Version 1.3.4 (24 janvier 2018)
- Correction d'un bug qui entraînait parfois l'échec de la suppression de l'itinéraire précédent par
clearDestinations
Version 1.3.3 (18 décembre 2017)
- La classe
CameraArbitrator
a été sécurisée, car elle est utilisée à la fois dans l'interface utilisateur et dans les threads de rendu. - Ne générez pas de NPE si les événements de
CompassButtonController
arrivent après queonDestroy()
a été appelé. - Ajoutez des vérifications nulles pour les méthodes publiques de NavigationApi. Le SDK renverra le NPE le plus proche du code du développeur.
Version 1.3.2 (30 novembre 2017)
- Résolution du plantage en cas d'erreurs réseau
Version 1.3.1 (14 novembre 2017)
- Correction des notifications pop-up de navigation détaillée sur Android 8.0 Oreo (niveau d'API 26) et versions ultérieures.
- Correction d'un problème à cause duquel l'itinéraire n'était pas visible si demandé avant de créer un
NavigationView
ou unNavigationFragment
.
Version 1.3 (7 novembre 2017)
- Ajout d'une méthode
onTrimMemory()
àNavigationView
. Cette méthode doit être appelée par l'activité associée. Navigator.setDestinations()
renvoie désormais l'étatLOCATION_UNKNOWN
si aucun correctif de localisation n'a été trouvé dans le délai imparti. Le délai avant expiration peut être défini à l'aide deRoutingOptions.locationTimeoutMs()
.- Les points d'ancrage des images de repère personnalisées peuvent désormais être définis à l'aide de
MarkerOptions.anchor()
. NavigationMap
expose maintenant un objetProjection
qui peut être utilisé pour obtenir les limites de latitude/longitude visibles de la carte en tenant compte de la marge intérieure.- Vous pouvez désormais désactiver les notifications de navigation détaillées dans une fenêtre pop-up à l'aide de
Navigator.setHeadsUpNotificationEnabled()
. - Le bouton de recentrage propose désormais un écouteur cliquable. Vous pouvez définir ce paramètre à l'aide de la méthode
setOnRecenterButtonClickedListener()
surNavigationView
,NavigationFragment
etSupportNavigationFragment
.
Version 1.2.6 (25 octobre 2017)
- Une exception NullPointerException susceptible de se produire si le service de navigation était recréé automatiquement par le système d'exploitation a été corrigée.
NavigationView
ne génère plus d'exception si certaines méthodes de cycle de vie sont appelées dans un ordre incorrect, par exemple des appels consécutifs àonStart()
ouonResume()
. À la place, un message d'avertissement est consigné.
Version 1.2.5 (19 octobre 2017)
- Ajout d'une meilleure gestion du cache des tuiles pour mieux contrôler l'utilisation de la mémoire.
- Un plantage qui pouvait se produire si
Navigator.setDestinations()
était appelé avant la création deNavigationView
ouNavigationFragment
a été résolu.
Version 1.2.4 (11 octobre 2017)
- Correction d'une fuite de mémoire qui pouvait se produire lors de la création de plusieurs éléments NavigationView en l'absence de navigateur.
Version 1.2.3 (4 octobre 2017)
- Correction d'un bug de cycle de vie qui entraînait parfois la disparition du repère de position géographique
- Correction d'une autre instance qui pouvait perdre des événements de prise en charge et de dépose
Version 1.2.2 (27 septembre 2017)
- Amélioration de la latence pour accélérer l'initialisation de l'API et les appels à
Navigator.setDestinations
Version 1.2.1 (20 septembre 2017)
- Ajout de
android:largeHeap="true"
au fichier manifeste de la bibliothèque. Cela réduit la fréquence d'OutOfMemoryErrors et est nécessaire pour une expérience de navigation fiable. - Amélioration de la fiabilité de l'enregistrement des événements de prise en charge et de dépose.
Version 1.2 (1er septembre 2017)
- Si l'orientation de l'appareil n'est pas connue, la carte s'affiche désormais en mode centré avec le nord en haut et affiche un repère circulaire de position géographique. Cela est particulièrement utile au début du parcours, pour aider les utilisateurs à s'orienter en leur indiquant que l'appareil n'a pas encore suffisamment d'idées dans le sens où ils se trouvent.
- La carte des incidents de circulation a été repensée et s'affiche en bas de la carte au lieu de sa position précédente en haut.
- Mise à jour de l'écoute de la position pour s'assurer qu'elle fonctionne comme prévu dans Android 8.0 Oreo (API de niveau 26).
- Correction d'un bug qui empêchait le rendu des repères de destination en mode navigation et en mode non-navigation.
Version 1.1.2 (16 septembre 2017)
- Amélioration de la fiabilité de l'enregistrement des événements de prise en charge et de dépose.
Version 1.1.1 (24 août 2017)
- Une exception IllegalStateException se produisait parfois lors du réacheminement sans connexion réseau. Ce problème a été résolu.
- Correction d'un bug où le style de la carte était différent avant et après l'appel de
Navigator.setDestinations()
.
Version 1.1 (31 juillet 2017)
- Correction d'un bug qui empêchait parfois
RoadSnappedLocationListener
de fonctionner lorsque l'application était envoyée en arrière-plan - Correction d'un bug lié à l'appareil photo lors du démarrage ou de l'arrêt du guidage.
- Correction d'un bug dans
Simulator.unsetUserLocation()
qui empêchait la réinitialisation correcte de l'établissement
Version 1.0 (5 juillet 2017)
- Lancement du SDK Navigation.