Note di rilascio

Questo log delle modifiche descrive in dettaglio le nuove funzionalità e le correzioni di bug in ogni release dell'SDK di navigazione per Android.

18 ottobre 2021: supporto del blocco per i livelli API 23, 24 e 25

In risposta ai cambiamenti nelle nostre dipendenze interne, i livelli delle API Android 23, 24 e 25 (Android 6, 7.0 e 7.1) non saranno supportati nelle nuove versioni degli SDK Navigation and Driver per Android, a partire dal terzo trimestre del 2022.

Gli SDK di navigazione e driver per le versioni Android rilasciate a partire dal terzo trimestre del 2022 supporteranno solo i dispositivi che eseguono almeno un livello API Android 26.

Le versioni dell'app create con la versione 4.x o precedente degli SDK Navigazione e driver per Android continueranno a funzionare sui dispositivi con livello API Android 25 e versioni precedenti.

Annuncio sul ritiro (21 giugno 2021)

Questo annuncio descrive il ritiro dell'SDK Navigazione per Android e dell'SDK Driver per Android a partire dalla data elencata sopra. Questo annuncio è stato inviato anche come annuncio di servizio obbligatorio per i clienti interessati.

Ritiro dell'SDK di navigazione per Android e dell'SDK Driver per Android v1.x

L'SDK Nav/Driver v1 è stato rilasciato nel 2018 e, con le nostre versioni v3 che verranno rilasciate a breve, è il momento di ritirare la versione 1 per evitare l'insostenibilità del supporto di molte versioni principali.

Il tempo risparmiato dal non dover supportare questa versione aggiuntiva ci consentirà di supportare meglio l'ultima versione principale e di creare più funzionalità importanti per i nostri clienti.

Pertanto, la versione 1.x dell'SDK Nav/Driver è ora deprecata e non verrà più gestita dopo il 21 giugno 2022.

Scopri come funzionano i ritiri nelle versioni dell'SDK.

Per ulteriori informazioni sul ritiro di Android, consulta le note di rilascio v2/v3 dell'SDK Navigation for Android.

Versione 1.51.1 (1 aprile 2022)

Stabilità e correzioni di bug

  • È stato corretto un link ipertestuale non funzionante nella finestra di dialogo dei Termini di servizio.

  • Alcuni client hanno ricevuto un errore nella finestra di dialogo dei Termini di servizio quando l'attività Android è stata eliminata. Ora i client non visualizzeranno più questo errore di dialogo quando viene eliminata un'attività.

Versione 1.51 (18 gennaio 2022)

Modifiche alle API

  • Aumenta il livello API minimo dell'API Android a 23 e il livello API target a 30. Questa versione di destinazione è in linea con i requisiti di Google Play.

  • Visualizza la polilinea che segue lo chevron di navigazione di colore "grigio" per indicare che l'utente ha già attraversato quella sezione del percorso.

Versione 1.50 (3 novembre 2021)

  • Variante incorporata della versione 1.22. Non sono state apportate modifiche oltre all'utilizzo delle librerie AndroidX.

Versione 1.22 (7 ottobre 2021)

Stabilità e correzioni di bug

  • Corregge un bug della videocamera per cui la videocamera smette di seguire la posizione dell'utente dopo la chiamata dell'arresto Navigazione.
  • Correzione di un bug della fotocamera in cui veniva visualizzato il pulsante di riposizionamento dopo aver eseguito lo sfondo dell'app.
  • Risolve un potenziale problema di perdita di memoria.
  • Corregge un bug che produceva problemi ANR.
  • Impedisce l'arresto anomalo generato dalla finestra di dialogo dei Termini di servizio.

Deprecazioni

  • Depreca #setDestinations con token di route a favore di una nuova API che utilizza CustomRoutesOptions.

Nuove funzionalità

  • Aggiunta della funzionalità di ritiro assistivo che aggiunge una nuova icona all'interfaccia utente del piè di pagina di navigazione.
  • Aggiunge il supporto dei veicoli a due ruote per i percorsi personalizzati.

Versione 1.21.1 (13 luglio 2021)

Stabilità e correzioni di bug

  • Corregge un valore IllegalStateException associato a un controllo di precondizioni eccessivamente restrittivo nel codice di implementazione.
  • Corregge un valore NullPointerException in NavigationView.onDestroy().

Versione 1.21 (23 giugno 2021)

Modifiche alle API

  • I listener di velocità sono ora supportati nella navigazione headless. In questo modo è possibile monitorare l'accelerazione senza prima eseguire il rendering di un View o di un Fragment dall'SDK di navigazione.

Stabilità e correzioni di bug

  • È stata migliorata l'affidabilità del caricamento del riquadro di mappa in modalità notturna sulle prime installazioni di app.

Deprecazioni

I seguenti metodi sono stati ritirati a favore di Navigator.setSpeedAlertOptions():

  • NavigationView.setSpeedAlertOptions()
  • SupportNavigationFragment.setSpeedAlertOptions()
  • NavigationFragment.setSpeedAlertOptions()

Versione 1.20.1 (14 luglio 2021)

Stabilità e correzioni di bug

  • Corregge un valore IllegalStateException associato a un controllo di precondizioni eccessivamente restrittivo nel codice di implementazione.
  • Corregge un valore NullPointerException in NavigationView.onDestroy().

Versione 1.20 (9 marzo 2021)

  • È stata aggiunta una nuova dipendenza obbligatoria. Aggiungi le seguenti dipendenze ai tuoi elenchi di dipendenze di Gradle per evitare arresti anomali di runtime: api 'joda-time:joda-time:2.9.9'.

Stabilità e correzioni di bug

  • Risolto il problema per cui i consumatori dell'SDK di navigazione che utilizzano Joda-Time riscontravano conflitti con la versione offuscata di jodatime pacchettizzata nella nostra libreria.
  • Risolto il problema per cui l'SDK di navigazione nascondeva accidentalmente le notifiche delle app del consumatore che non sono di sua proprietà all'avvio di una sessione di navigazione.

Versione 1.19 (15 dicembre 2020)

Modifiche alle API

  • Il DriverSDK ora invia sempre dati sul traffico a FleetEngine. In precedenza, questo comportamento era determinato dal flag UpdateVehicleResponse, che ora viene ignorato.

  • Il costruttore FleetEngine è cambiato. Sono stati aggiunti wrapper per AuthTokenFactory e StatusListener.

  • Sono stati aggiunti due nuovi metodi all'API Navigator per consentire l'impostazione e la rimozione degli ascoltatori per le nuove sessioni di navigazione.

  • È stato aggiunto un nuovo metodo all'API Navigator per ottenere gli ID transazione per la sessione di navigazione in corso. Questa API deve essere utilizzata quando inizia una nuova sessione di navigazione e quando gli ID transazione cambiano in una sessione di navigazione in corso (ad es. quando viene aggiornato l'elenco dei segmenti del percorso).

Versione 1.18 (9 ottobre 2020)

  • Metodo setAbnormalTerminationReportingEnabled(boolean) aggiunto. Questo metodo consente agli utenti di disabilitare il monitoraggio del rilevamento degli arresti anomali.

  • Risolto il bug per cui non è stato possibile annullare la registrazione di LocationListeners per l'evento onLocationChange.

  • Risolto il problema di arresto anomalo di gRPC in cui non è stato possibile creare un'istanza di io.grpc.util.SecretRoundRobinLoadBalancerProvider$Provider.

Versione 1.17 (27 agosto 2020)

  • Ora puoi passare un token di route a NavSDK per recuperare la route rappresentata dal token. Il token di route è associato a una risposta di route quando chiami l'API Routes Preferred. La nuova API è Navigator#setDestination(List<Waypoint> destinations, String routeToken).

  • Sono state aggiunte alcune nuove dipendenze obbligatorie. Aggiungi le seguenti dipendenze ai tuoi elenchi di dipendenze di Gradle per evitare arresti anomali del runtime:

    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'

Versione 1.16 (10 agosto 2020)

Nuove funzionalità

Stabilità e correzioni di bug

  • Metodo NavigationApi.cleanUp deprecato a causa di effetti collaterali indesiderati, come NullPointerExceptions che hanno causato arresti anomali.

  • Deprecate Waypoint.fromLatLng() e Waypoint.fromPlaceId() a favore di Waypoint.builder().

  • È stata ritirata la classe AddressListener, contenuta in NavigationTransactionRecorder, perché inutilizzata.

Versione 1.15 (23 marzo 2020)

Nuove funzionalità

  • Caratteri/colori/icone personalizzabili per l'intestazione di navigazione.

  • Supporta la personalizzazione del colore delle corsie consigliate nell'UI di intestazione di navigazione.

  • Aggiorna diverse API in modo da seguire il pattern add-remove per impostare callback/ascoltatori. I metodi set* precedenti sono stati contrassegnati come deprecati e verranno rimossi in una release futura. I metodi ritirati sono elencati qui:

    • SupportNavigationFragment.setOnNightModeChangedListener
    • SupportNavigationFragment.setOnRecenterButtonClickedListener
    • NavigationFragment.setOnNightModeChangedListener
    • NavigationFragment.setOnRecenterButtonClickedListener
    • NavigationView.setOnNightModeChangedListener
    • NavigationView.setOnRecenterButtonClickedListener
    • Navigator.setArrivalListener
    • Navigator.setRouteChangedListener
    • Navigator.setRemainingTimeOrDistanceChangedListener

Stabilità e correzioni di bug

  • Aumenta il valore minSdkVersion per navsdk a 19.

  • Risolto il bug per cui i nomi dei Waypoint lat/lng non venivano rispettati nel caso in cui la geocodifica inversa lato server non va a buon fine.

Versione 1.14 (2 febbraio 2020)

Nuove funzionalità

  • (Beta) L'operatore può influire su quale opzione del percorso viene seguita dal conducente impostando una distanza target per il percorso nella richiesta di indicazioni stradali. Questa funzionalità è in versione beta. Se ti interessa, contatta il tuo rappresentante di Customer Engineer per saperne di più.

  • Compila l'SDK aggiornato all'API 29.

Stabilità e correzioni di bug

  • È stato corretto un bug nella finestra di dialogo dei Termini di servizio che impediva l'applicazione obbligatoria della richiesta "Accetta" per i conducenti.

  • È stato modificato il comportamento di gestione delle eccezioni nei componenti NDK per evitare un arresto anomalo.

Versione 1.13 (8 novembre 2019)

Nuove funzionalità

  • Ora i conducenti possono ricevere avvisi di velocità quando superano il limite di velocità. Puoi personalizzare l'aspetto delle icone degli avvisi di velocità. Come specificato nei Termini di servizio di Google Maps Enterprise, Google non fornisce alcuna garanzia in merito alla qualità di alcuna funzionalità, inclusa la precisione della funzionalità di avviso di velocità. Gli avvisi di velocità sono pensati per essere usati solo a scopo informativo.

  • È stata aggiunta una nuova opzione di routing (RoutingOptions) che consente di visualizzare i percorsi alternativi durante l'anteprima del percorso.

  • È stata aggiunta una nuova prospettiva della fotocamera che mostra una vista dall'alto verso il basso del percorso, con il percorso orientato in modo che il veicolo sia sempre rivolto in avanti. Puoi configurare questo punto di vista chiamando NavFragment.getCamera().followMyLocation(Camera.Perspective.TOP_DOWN_HEADING_UP).

  • È stata aggiunta una nuova API (resetFreeNav() in RoadSnappedLocationProvider) che puoi chiamare per reimpostare il servizio Free Nav ogni volta che smetti di ricevere aggiornamenti sulla posizione su un listener registrato, quando la navigazione non è attiva.

Stabilità e correzioni di bug

  • Aggiornamento dei contenuti della finestra di dialogo dei Termini di servizio.

Versione 1.12 (7 ottobre 2019)

Nuove funzionalità

  • Ora puoi nascondere e mostrare uno o tutti i percorsi alternativi durante la navigazione.

  • Ora puoi specificare la strategia di routing nelle richieste (route più breve/più veloce).

  • Aggiunta la possibilità di personalizzare completamente la finestra di dialogo Termini e condizioni (dimensioni del testo, colore e così via).

Stabilità e correzioni di bug

  • Risolto il problema della classe duplicata nel problema com.google.http-client.

  • È stata aggiornata l'app demo per utilizzare il nuovo SDK Places e Jetified l'app demo.

  • È stata migliorata la frequenza fotogrammi della fotocamera nella panoramica del percorso.

Versione 1.11 (28 giugno 2019)

Miglioramenti delle prestazioni

  • La latenza di rete setDestination è stata migliorata.

Correzioni di bug

  • È stata corretta un'incoerenza con il callback onArrival durante la navigazione in più waypoint.

  • Risolto il problema per cui l'arrivo potrebbe attivarsi prematuramente per i waypoint non vicini alla posizione corrente.

  • java.lang.IllegalStateException

    • Una chiamata al numero NavigationView.onDestroy non può seguire una chiamata a NavigationView.onCreate.

Varie

  • Aggiornamenti delle licenze software open source.

  • Sono stati rimossi i callout ETA della route per rimuovere i dati ridondanti e semplificare l'interfaccia utente.

Versione 1.10.2 (11 aprile 2019)

Stabilità e correzioni di bug

  • Risolto il bug che poteva causare la generazione di un'eccezione IllegalStateException durante la transizione del ciclo di vita di Fragment: da onCreate() a onDestroy().

Versione 1.10 (11 aprile 2019)

Funzionalità

  • Intestazione della finestra di dialogo Termini e condizioni personalizzabile Puoi personalizzare il testo del titolo della finestra di dialogo Termini e condizioni utilizzando showTermsAndConditionsDialog.

  • Indicatore del waypoint: sono stati rimossi i caratteri alfanumerici dagli indicatori dei waypoint.

Versione 1.9 (11 febbraio 2019)

Funzionalità

  • Intestazione secondaria Puoi aggiungere contenuti personalizzati sotto l'intestazione di navigazione utilizzando la funzionalità dei controlli personalizzati. Visualizza la posizione SECONDARY_HEADER per il metodo setCustomControl.

  • Nuove dipendenze: aggiungi dipendenze per Cronet e Glide. Per maggiori dettagli, consulta Aggiornare lo script di build Gradle nell'argomento Configurazione del progetto.

Problemi noti

  • Se l'app demo si arresta in modo anomalo con java.lang.ClassNotFoundException: non ha trovato la classe "com.example.navigationapidemo.SplashScreenActivity", devi aggiornare la dipendenza per gli strumenti di build Gradle alla versione 3.3.1 o successive. Nel file build.gradle, verifica che buildscript corrisponda all'esempio seguente:
buildscript {
    repositories {
        mavenCentral()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.1'
    }
}

Versione 1.8.1 (22 gennaio 2019)

Stabilità e correzioni di bug

  • La modalità taxi si arresta in modo anomalo con determinate modalità della fotocamera. I problemi sono stati risolti.
  • Diversi miglioramenti della stabilità.

Versione 1.8 (21 dicembre 2018)

Funzionalità

  • Modalità taxi - BETA: la tua app può utilizzare le corsie e le strade specificamente dedicate ai taxi per fornire i percorsi e l'orario di arrivo stimato (orario di arrivo stimato) per i veicoli identificati come taxi.

    Al momento sono supportate le seguenti aree geografiche:

    • Brasile: Rio de Janeiro
    • Inghilterra: Londra, Coventry, area metropolitana di Londra, Manchester
    • Israele: Tel Aviv
    • Irlanda: Dublino
    • Russia: Mosca
    • Scozia: Glasgow, Edimburgo
    • Spagna: Madrid, Barcellona

Stabilità e correzioni di bug

  • Risolti le perdite di memoria
  • Prestazioni migliorate

Versione 1.7.3 (18 settembre 2018)

Correzioni di bug

  • NavigationView ora potrebbe passare da onStart direttamente a onStop e questo non genererà più un IllegalStateException.

Versione 1.7.2 (16 agosto 2018)

Funzionalità

  • Ora puoi mostrare un elenco di indicazioni stradali durante la navigazione per visualizzare le svolte imminenti per una corsa. L'elenco delle indicazioni stradali è fornito tramite DirectionsListView.
  • Ora puoi recuperare lo stato del traffico utilizzando la classe TimeAndDistance tramite il metodo getSeverity.
  • Ora sono supportate le limitazioni relative alle targhe dei veicoli.

Correzioni di bug

  • Gli arresti anomali occasionali nella finestra di dialogo dei Termini di servizio (che si manifestano come IllegalStateException) sono stati corretti.
  • L'eccezione NullPointerException con un messaggio come "tenta di scrivere nel campo ... su un riferimento a oggetto null" è stata corretta.
  • Gli identificatori di risorse nel file R.txt (in precedenza tutti i valori 0x1) ora hanno i valori corretti.

Versione 1.6.2 (16 luglio 2018)

Correzioni di bug

  • È stata corretta un'eccezione NullPointerException in AccessibilityStateUtils.getAccessibilityState().

Versione 1.6.0 (10 maggio 2018)

Correzioni di bug

  • Risolto un bug che causava errori di chiamata dell'orario di arrivo stimato nelle tappe e nei percorsi alternativi.
  • È stata corretta un'eccezione NullPointerException quando i valori di latitudine e/o longitudine di una località erano null.
  • Risolto un bug che impediva il caricamento della mappa se la finestra di dialogo dei TdS era stata accettata in modalità offline.
  • È stata introdotta una soluzione alternativa per un bug LocationManager di Android OS 7.0 che avrebbe comportato un NPE nell'SDK di navigazione.

Versione 1.5.0 (26 marzo 2018)

Funzionalità

  • Modalità notturna: ora puoi impostare la navigazione in modo da utilizzare il tema della modalità notturna. Puoi attivare o disattivare in modo programmatico la modalità notturna oppure lasciare che l'SDK di navigazione attivi/disattiva automaticamente il tema in base all'ora del giorno.
  • Modalità di viaggio a due ruote (beta): ora puoi impostare la modalità di viaggio su TWO-WHEELER per trovare percorsi per moto e scooter. Questa funzionalità è attualmente disponibile solo in India e Indonesia.
  • Limiti di velocità: ora puoi mostrare o nascondere in modo programmatico l'icona del limite di velocità (l'icona viene visualizzata solo nelle località in cui sono disponibili dati affidabili sui limiti di velocità).
  • Controlli personalizzati dell'overlay della mappa: puoi utilizzare i controlli personalizzati dell'overlay della mappa per posizionare gli elementi dell'interfaccia utente in modo dinamico durante la navigazione.
  • La chiamata getNavigator() ora accetta un contesto dell'applicazione in modo che possa essere chiamata da un servizio.

Correzioni di bug

  • Sono stati risolti diversi problemi di layout del testo nella finestra di dialogo dei Termini di servizio per migliorare la visualizzazione delle lingue da destra a sinistra.

Versione 1.3.4 (24 gennaio 2018)

  • Risolto il bug per cui a volte clearDestinations non riusciva a cancellare il percorso precedente

Versione 1.3.3 (18 dicembre 2017)

  • Rendere la classe CameraArbitrator sicura per i thread poiché viene utilizzata sia nell'interfaccia utente sia nei thread di rendering.
  • Non generare un NPE se arrivano eventi per CompassButtonController dopo che è stato chiamato onDestroy().
  • Aggiungi controlli null per i metodi pubblici di NavigationApi. L'SDK genererà l'NPE più vicino al codice dello sviluppatore.

Versione 1.3.2 (30 novembre 2017)

  • Risolto il problema di arresto anomalo in caso di errori di rete.

Versione 1.3.1 (14 novembre 2017)

  • Sono state corrette le notifiche di navigazione popup passo passo su Android 8.0 Oreo (livello API 26) e versioni successive.
  • Risolto il problema per cui le indicazioni stradali non erano visibili se richieste prima della creazione di un elemento NavigationView o NavigationFragment.

Versione 1.3 (7 novembre 2017)

  • Metodo onTrimMemory() aggiunto a NavigationView. Questo metodo dovrebbe essere chiamato dall'attività contenitore.
  • Navigator.setDestinations() ora restituirà uno stato LOCATION_UNKNOWN se non è stata trovata una correzione della località entro il timeout specificato. Il timeout può essere impostato utilizzando RoutingOptions.locationTimeoutMs().
  • Ora i punti di ancoraggio per le immagini di indicatori personalizzate possono essere impostati utilizzando MarkerOptions.anchor().
  • NavigationMap ora espone un oggetto Projection che può essere utilizzato per ottenere i limiti lat/lng visibili della mappa tenendo conto della spaziatura interna.
  • Ora è possibile disattivare le notifiche di navigazione passo passo popup utilizzando Navigator.setHeadsUpNotificationEnabled().
  • Il pulsante per riposizionare il video offre ora un listener quando l'utente fa clic. Questa opzione può essere impostata utilizzando il metodo setOnRecenterButtonClickedListener() su NavigationView, NavigationFragment e SupportNavigationFragment.

Versione 1.2.6 (25 ottobre 2017)

  • Correzione di un'eccezione NullPointerException che potrebbe verificarsi se il servizio di navigazione veniva ricreato automaticamente dal sistema operativo.
  • NavigationView non genera più un'eccezione se determinati metodi del ciclo di vita vengono chiamati in un ordine errato, ad esempio chiamate consecutive a onStart() o onResume(). Viene invece registrato un messaggio di avviso.

Versione 1.2.5 (19 ottobre 2017)

  • È stata aggiunta una migliore gestione della cache dei riquadri per tenere sotto controllo l'utilizzo della memoria.
  • Risolto un arresto anomalo che poteva verificarsi se Navigator.setDestinations() veniva chiamato prima della creazione di un NavigationView o NavigationFragment.

Versione 1.2.4 (11 ottobre 2017)

  • Risolto il problema di perdita di memoria che si verificava durante la creazione di più elementi NavigationView in cui non era presente un navigatore.

Versione 1.2.3 (4 ottobre 2017)

  • Risolto un bug del ciclo di vita che a volte causava la scomparsa dell'indicatore di posizione.
  • È stato risolto un altro caso in cui gli eventi di prelievo e consegna potevano andare persi.

Versione 1.2.2 (27 settembre 2017)

  • Miglioramenti della latenza per accelerare l'inizializzazione delle API e le chiamate a Navigator.setDestinations.

Versione 1.2.1 (20 settembre 2017)

  • Elemento android:largeHeap="true" aggiunto al manifest della raccolta. Questo riduce la frequenza di OutOfMemoryErrors ed è necessario per un'esperienza di navigazione affidabile.
  • È stata migliorata l'affidabilità della registrazione degli eventi di prelievo e abbandono.

Versione 1.2 (1 settembre 2017)

  • Quando l'orientamento del dispositivo non è noto, la mappa ora viene visualizzata in modalità panoramica centrata con il nord in alto e mostra un indicatore di posizione circolare. Questa funzionalità è particolarmente utile all'inizio del percorso, per aiutare gli utenti a orientarsi, comunicando che il dispositivo non sa ancora bene da che aspetto deve essere inquadrato.
  • La scheda Incidenti stradali ha un nuovo design e viene visualizzata nella parte inferiore della mappa anziché nella posizione precedente in alto.
  • È stato aggiornato l'ascolto della posizione per garantire che funzioni come previsto in Android 8.0 Oreo (livello API 26).
  • Risolto il bug per cui gli indicatori di destinazione venivano visualizzati in modo diverso in modalità di navigazione e non.

Versione 1.1.2 (16 settembre 2017)

  • È stata migliorata l'affidabilità della registrazione degli eventi di prelievo e abbandono.

Versione 1.1.1 (24 agosto 2017)

  • È stata corretta un'eccezione ENTITYStateException che a volte si verificava durante il reindirizzamento senza connessione di rete.
  • È stato corretto un bug per cui lo stile della mappa era diverso prima e dopo la chiamata a Navigator.setDestinations().

Versione 1.1 (31 luglio 2017)

  • Risolto un bug per cui RoadSnappedLocationListener a volte non funzionava quando l'app veniva inviata in background.
  • È stato corretto un bug della fotocamera durante l'avvio/l'interruzione della guida.
  • Risolto il bug in Simulator.unsetUserLocation() per cui la posizione non veniva reimpostata correttamente.

Versione 1.0 (5 luglio 2017)

  • Lancio dell'SDK di navigazione.