Disclaimer
Questo prodotto/funzionalità cambierà e non è soggetto a SLA (accordo sul livello del servizio) o a norme sul ritiro. L'implementazione è soggetta a modifiche nelle release future.
In merito al software di esempio, ai file di dati e/o al codice sorgente che accompagnano questa documentazione: questo prodotto viene fornito "così com'è" e senza alcuna garanzia di alcun tipo e Google declina espressamente qualsiasi garanzia, espressa, implicita, di legge o di altro tipo, incluse, a titolo esemplificativo, garanzie di commerciabilità, idoneità a uno scopo specifico e assenza di violazione di qualsiasi diritto relativo a questo prodotto.
Tramite gli intent di Android Automotive, puoi avviare la navigazione in Google Maps.
Per ulteriori informazioni, consulta Intent di Google Maps per Android.
Per ulteriori informazioni su come portare la tua app sui veicoli con Android Auto o Android Automotive OS, consulta Android per auto.
Panoramica
Questa pagina descrive gli intent che puoi utilizzare con Google Maps per Android Automotive. Per una documentazione dettagliata per gli sviluppatori Android, leggi:
Richieste di intent
Per avviare Google Maps per Android Automotive con un'intent, devi prima creare un oggetto Intent, specificandone l'azione, l'URI e il pacchetto.
Azione. Tutti gli intent di Google Maps vengono chiamati come azione di visualizzazione,
ACTION_VIEW
.URI. Le intenzioni di Google Maps utilizzano stringhe con codifica URI che specificano un'azione auspicata, insieme ad alcuni dati con cui eseguire l'azione.
Pacchetto. La chiamata a
setPackage("com.google.android.apps.maps")
garantisce che l'app Google Maps per Android gestisca l'intent. Se il pacchetto non è impostato, il sistema determina quali app possono gestire l'intent. Se sono disponibili più app, ti potrebbe essere chiesto quale vuoi utilizzare.
Dopo aver creato l'intent, puoi richiedere al sistema di avviare l'app correlata in diversi modi. Un metodo comune è passare l'Intent al metodo
startActivity()
. Il sistema avvierà l'app necessaria, in questo caso Google Maps, e avvierà l'Attività corrispondente.
// Create a Uri from an intent string. Use the result to create an Intent.
Uri mapIntentUri =
Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
// Create an Intent from mapIntentUri. Set the action to ACTION_VIEW
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps");
// Attempt to start an activity that can handle the Intent
startActivity(mapIntent);
Se il sistema non riesce a identificare un'app in grado di rispondere all'intent, l'app potrebbe bloccarsi. Per questo motivo, prima di presentare uno di questi intent a un utente, verifica che sia installata un'applicazione di ricezione.
Per verificare che un'app sia disponibile per ricevere l'intent, chiama
resolveActivity()
sull'oggetto Intent
. Se il risultato è diverso da null, esiste almeno un'app che può gestire l'intent ed è possibile chiamare startActivity()
. Se il risultato è nullo, non devi utilizzare l'intent
e, se possibile, disattivare la funzionalità che richiama l'intent.
if (mapIntent.resolveActivity(getPackageManager()) != null) {
...
}
Ad esempio, per avviare la navigazione passo passo fino allo zoo Taronga di Sydney, puoi utilizzare il seguente codice:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}
Stringhe di query con codifica URI
Tutte le stringhe passate agli intent di Google Maps devono essere codificate per l'URL. Ad esempio,
la stringa "1st & Pike, Seattle" deve diventare 1st%20%26%20Pike%2C%20Seattle
.
Gli spazi nella stringa possono essere codificati con %20
o sostituiti con il segno più (+).
Puoi utilizzare il metodo android.net.Uri parse()
per codificare le stringhe. Ad
esempio:
Uri mapIntentUri = Uri.parse("google.navigation:q=" + Uri.encode("1st & Pike, Seattle"));
Avvia la navigazione passo passo
Utilizza questa intenzione per avviare la navigazione di Google Maps con indicazioni stradali passo passo per uno o più indirizzi o coordinate specificati. Le indicazioni stradali vengono sempre fornite dalla posizione corrente dell'utente.
google.navigation:q=a+street+address
google.navigation:q=latitude,longitude
google.navigation:place=placename
Parametri
Per avviare la navigazione, utilizza place
o q
con waypoints
, che è facoltativo. Per contrassegnare facoltativamente un punto di passaggio come stazione di ricarica, consulta l'articolo Inviare un piano di viaggio per veicoli elettrici a Google Maps.
q
imposta l'endpoint per le ricerche di navigazione. Può essere una latitudine/longitudine o un indirizzo formato per query. Se si tratta di una stringa di query che restituisce più di un risultato, verrà selezionato il primo.place
imposta l'endpoint su casa o lavoro. Specifica casa per andare alla casa dell'utente e lavoro per andare al suo luogo di lavoro.avoid
imposta gli elementi che il percorso deve cercare di evitare.avoid
è facoltativo e può essere impostato su uno o più dei seguenti valori:t
per i pedaggih
per le autostradef
per i traghetti
waypoints
specifica uno o più luoghi intermedi per calcolare le indicazioni stradali fino alla destinazione finale specificata daq
. Puoi specificare più waypoint utilizzando il carattere barra verticale (|
) per separare i luoghi, ad esempioBerlin,Germany|Paris,France
. Puoi utilizzare tutti i waypoint necessari. I waypoint verranno aggiunti al percorso nell'ordine in cui sono elencati nell'URL. Ogni waypoint può essere un indirizzo o coordinate di latitudine/longitudine separate da virgola. Inoltre, puoi avere indirizzi e coordinate lat/long nello stesso intent. Le stringhe devono essere codificate in URL, pertanto i waypoint come "Berlin,Germany|Paris,France" devono essere convertiti inBerlin%2CGermany%7CParis%2CFrance
.
Esempi
Questo intent richiederà indicazioni stradali per raggiungere lo zoo Taronga a Sydney, in Australia:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Se preferisci non pagare pedaggi o non prendere un traghetto, puoi richiedere un itinerario che tenta di evitare queste situazioni:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
In alternativa, se preferisci andare a casa, usa:
Uri mapIntentUri = Uri.parse("google.navigation:place=home");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Per avviare la navigazione passo passo per i tre indirizzi seguenti in ordine,
invia lo zoo di Taronga come destinazione finale q
e Google Sydney e Sydney
Opera House come waypoint:
Google Sydney
Teatro dell'opera di Sydney
Taronga Zoo, Sydney, Australia
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7CSydney+Opera+House");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Come per q
, puoi rappresentare qualsiasi waypoint con latitudine e longitudine separati da virgole anziché con un indirizzo. Ad esempio, per avviare la stessa navigazione passando la latitudine e la longitudine della Sydney Opera House anziché l'indirizzo:
Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7C-33.856159,151.215256");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Inviare un piano di viaggio per veicoli elettrici a Google Maps
Utilizza questa intenzione di navigazione con più destinazioni per specificare alcune destinazioni come fermate di ricarica per veicoli elettrici (EV). Questo intent, che estende l'intent con più punti di passaggio, aiuta i conducenti a mantenere una carica sufficiente della batteria del veicolo elettrico per raggiungere le loro destinazioni sincronizzando le informazioni sulle stazioni di ricarica tra le app di pianificazione dei viaggi EV e Google Maps.
Per le tappe di ricarica, intent di viaggio:
- Deve contenere il nome e la latitudine e la longitudine
- Può facoltativamente contenere l'uscita di potenza, da utilizzare per il calcolo del tempo di ricarica
Google utilizza il nome e le coordinate latitudine/longitudine della stazione di ricarica per trovare un luogo corrispondente della stazione di ricarica e mostrare dati completi come tipi di connettori, totali, velocità e disponibilità in tempo reale, metodi di pagamento supportati e punti di interesse ospitanti. Ad esempio, indicazioni stradali all'interno di parcheggi all'aperto per la parte finale della navigazione, orari di apertura, valutazioni. Per assicurarti che le stazioni di ricarica
corrispondano bene ai dati di Google, utilizza <brand name>
, ad esempio ChargePoint
.
Parametri
Destinazione finale
Per impostare una stazione di ricarica come destinazione finale, utilizza:
q
: deve contenere il valore lat-long della stazione di ricarica.q_type
:1
specifica che la destinazione finale è una stazione di ricarica.q_name
: il nome della destinazione finale. Obbligatorio seq_type
è1
.q_power_output_kw
: un numero doppio per l'uscita di potenza della stazione di ricarica in kilowatt. Facoltativo.
Waypoint
Per i waypoint, tutti i parametri sono array paralleli separati da trattini di valori nello stesso ordine dei waypoint, esclusa la destinazione finale. Una mancata corrispondenza nel numero di elementi negli array paralleli viene trattata come un intento con formato non valido.
Per aggiungere uno o più waypoint delle stazioni di ricarica, utilizza i seguenti parametri, tutti facoltativi. Se una delle destinazioni è contrassegnata come stazione di ricarica, il nome del punto di passaggio diventa obbligatorio per quella destinazione.
waypoints
: elenco di waypoint come descritto nell'intent di navigazione passo passo. Deve essere un valore lat-long per i waypoint delle stazioni di ricarica.waypoint_types
: tipi per waypoint specificati come numero.0
è una fermata qualsiasi (valore predefinito) e1
è la stazione di ricarica.waypoint_names
: nomi dei waypoint. Questo campo è obbligatorio per le stazioni di ricarica.waypoint_power_outputs_kw
: numeri doppi per la potenza della stazione di ricarica in kilowatt. Per le stazioni di ricarica, puoi specificare facoltativamente un valore di potenza di un punto di passaggio, che viene utilizzato come opzione di riserva se non viene trovata la stazione corrispondente. Se lo slot è vuoto, significa che non è stato fornito alcun valore.
Comportamento dell'esperienza utente (UX)
Per le intenzioni di viaggio con più destinazioni, viene visualizzata la schermata di panoramica del percorso, ma la navigazione non si avvia automaticamente.
Per un'intenzione formattata correttamente, Google Maps mostrerà una schermata di panoramica del percorso per il viaggio. La schermata di panoramica del percorso mostrerà tutti i waypoint e la destinazione finale dell'intent, con consigli per la ricarica, se applicabili.
Per qualsiasi waypoint o destinazione finale contrassegnato come stazione di ricarica, Google Maps cercherà un luogo corrispondente nel database di Google.
Se viene trovata una corrispondenza, Google Maps utilizza i dati di Google per mostrare la stazione di ricarica nell'interfaccia utente (UI) e fornire un consiglio per la ricarica. Se la corrispondenza non viene trovata, i dati forniti nell'intent per una stazione di ricarica (lat-long, nome e potenza in uscita) verranno utilizzati per visualizzare questa stazione di ricarica nell'interfaccia utente e fornire un consiglio di ricarica presso questa stazione di ricarica.
Esempi
Andare a una destinazione finale tramite più stazioni di ricarica
L'intent seguente consente di raggiungere la destinazione finale, Port Macquarie NSW, tramite due stazioni di ricarica, ChargePoint ed Evie.
Destinazioni in ordine:
Stazione di ricarica ChargePoint (posizione: -32.9599188,151.6240806, potenza in uscita: 6,6 kW)
Stazione di ricarica Evie (posizione: -31.9432539,152.4699808, potenza in uscita: 350 kW)
Port Macquarie, NSW
Uri mapIntentUri =
Uri.parse(
"google.navigation:q=Port+Macquarie+NSW"
+ "&waypoints=-32.9599188%2C151.6240806%7C-31.9432539%2C152.4699808"
+ "&waypoint_types=1%7C1"
+ "&waypoint_names=ChargePoint+Charging+Station%7CEvie+Charging+Station"
+ "&waypoint_power_outputs_kw=6.6%7C350");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Potenza in uscita sconosciuta
Se il valore dell'alimentazione è sconosciuto, lascia vuoto lo spazio pertinente di waypoint_power_outputs_kw
. In alternativa, se tutti gli slot sono vuoti, non è necessario specificare il parametro waypoint_power_outputs_kw
.
Destinazioni in ordine:
Stazione di ricarica ChargePoint (posizione: -32.9599188,151.6240806, potenza in uscita: sconosciuta)
Port Macquarie, NSW
Uri mapIntentUri =
Uri.parse(
"google.navigation:q=Port+Macquarie+NSW"
+ "&waypoints=-32.9599188%2C151.6240806"
+ "&waypoint_types=1"
+ "&waypoint_names=ChargePoint+Charging+Station");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Contrassegnare la destinazione finale come stazione di ricarica
Per contrassegnare la destinazione finale come stazione di ricarica, specifica i parametri q_type
, q_name
e q_power_output_kw
.
Destinazioni in ordine:
Taronga Zoo, Sydney, Australia
Stazione di ricarica ChargePoint (posizione: -32.9599188,151.6240806, potenza in uscita: sconosciuta)
Stazione di ricarica Evie (posizione: -31.9432539,152.4699808, potenza in uscita: 350 kW)
Uri mapIntentUri =
Uri.parse(
"google.navigation:q=-31.9432539,152.4699808&q_type=1&q_name=Evie+Charging+Station&q_power_output_kw=350"
+ "&waypoints=Taronga+Zoo%2C+Sydney+Australia%7C-32.9599188%2C151.6240806"
+ "&waypoint_types=0%7C1"
+ "&waypoint_names=%7CChargePoint+Charging+Station"
+ "&waypoint_power_outputs_kw=%7C");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Intenzioni di azione
Sono disponibili i seguenti intent di azioni con interfacce:
Azione | Descrizione |
---|---|
geo.action:?act=mute |
Disattiva l'audio di tutte le indicazioni stradali vocali della navigazione. |
geo.action:?act=unmute |
Riattiva l'audio della guida vocale di navigazione. |
geo.action:?act=show_traffic |
Mostra le linee di traffico sulla mappa. |
geo.action:?act=hide_traffic |
Nasconde le linee di traffico sulla mappa. |
geo.action:?act=show_satellite |
Mostra le immagini satellitari sulla mappa. |
geo.action:?act=hide_satellite |
Nasconde le immagini satellitari sulla mappa. |
geo.action:?act=query_next_turn |
Google Maps annuncia la svolta successiva (funziona solo durante la navigazione). |
geo.action:?act=distance_to_next_turn |
Google Maps annuncia la distanza alla svolta successiva (funziona solo durante la navigazione). |
geo.action:?act=time_to_next_turn |
Google Maps annuncia il tempo che manca per la svolta successiva (funziona solo durante la navigazione). |
geo.action:?act=distance_to_destination |
Google Maps annuncia la distanza dalla destinazione (funziona solo durante la navigazione). |
geo.action:?act=go_back |
Google Maps torna alla schermata precedente nell'interfaccia utente. |
geo.action:?act=query_current_road |
Google Maps pronuncia la strada attuale. |
geo.action:?act=query_destination |
Google Maps annuncia la destinazione. |
geo.action:?act=apply_electric_vehicle_connector_filter |
Applica il filtro del tipo di connettore per i risultati di ricerca delle stazioni di ricarica per veicoli elettrici. |
geo.action:?act=remove_electric_vehicle_connector_filter |
Rimuove il filtro del tipo di connettore per i risultati di ricerca delle stazioni di ricarica per veicoli elettrici. |
geo.action:?act=apply_electric_vehicle_payment_filter |
Applica il filtro di pagamento per i risultati di ricerca delle stazioni di ricarica per veicoli elettrici. |
geo.action:?act=remove_electric_vehicle_payment_filter |
Rimuove il filtro di pagamento per i risultati di ricerca delle stazioni di ricarica per veicoli elettrici. |
geo.action:?act=apply_electric_vehicle_fast_charging_filter |
Applica il filtro di ricarica rapida per i risultati di ricerca delle stazioni di ricarica per veicoli elettrici. |
geo.action:?act=remove_electric_vehicle_fast_charging_filter |
Rimuove il filtro di ricarica rapida per i risultati di ricerca delle stazioni di ricarica per veicoli elettrici. |
geo.action:?act=avoid_tolls |
Se l'utente sta navigando, indica a Google Maps di evitare i percorsi con pedaggi. Ciò potrebbe comportare un nuovo percorso se quello attuale prevede pedaggi. |
geo.action:?act=allow_tolls |
Se l'utente sta navigando, indica a Google Maps di consentire i percorsi con pedaggi. Ciò potrebbe comportare un nuovo percorso se la possibilità di pagare pedaggi consente di trovare un percorso migliore. |
geo.action:?act=avoid_ferries |
Se l'utente sta navigando, dice a Google Maps di evitare i percorsi con traghetti. Ciò potrebbe comportare un nuovo percorso se il percorso attivo corrente include traghetti. |
geo.action:?act=allow_ferries |
Se l'utente sta navigando, indica a Google Maps di consentire i percorsi con traghetti. Ciò potrebbe comportare un nuovo percorso se l'inclusione dei traghetti consente di trovare un percorso migliore. |
geo.action:?act=avoid_highways |
Se l'utente sta navigando, dice a Google Maps di evitare i percorsi con autostrade. Ciò potrebbe comportare un nuovo percorso se il percorso attivo corrente include autostrade. |
geo.action:?act=allow_highways |
Se l'utente sta navigando, indica a Google Maps di consentire i percorsi con autostrade. Ciò potrebbe comportare un nuovo percorso se l'inclusione delle autostrade consente di trovare un percorso migliore. |
geo.action:?act=eta |
Se l'utente sta guidando, Google Maps annuncia l'orario di arrivo stimato della destinazione (ad esempio le 9:15). |
geo.action:?act=time_to_destination |
Se l'utente sta navigando, Google Maps annuncia il tempo di percorrenza stimato per la destinazione (ad esempio 15 minuti). |
geo.action:?act=exit_navigation |
Esce dalla navigazione. |
geo.action:?act=select_search_result&id=0 |
Se al momento sullo schermo sono visualizzati i risultati di ricerca (vedi di seguito), avvia la navigazione al risultato n in base al parametro ID fornito. Tieni presente
che l'indice è basato su 0 (ovvero l'intent riportato sopra selezionerà il primo
risultato nell'elenco).
|