Google Maps per Android Automotive Intent

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 pedaggi
    • h per le autostrade
    • f per i traghetti
  • waypoints specifica uno o più luoghi intermedi per calcolare le indicazioni stradali fino alla destinazione finale specificata da q. Puoi specificare più waypoint utilizzando il carattere barra verticale (|) per separare i luoghi, ad esempio Berlin,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 in Berlin%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:

  1. Google Sydney

  2. Teatro dell'opera di Sydney

  3. 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 se q_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) e 1 è 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:

  1. Stazione di ricarica ChargePoint (posizione: -32.9599188,151.6240806, potenza in uscita: 6,6 kW)

  2. Stazione di ricarica Evie (posizione: -31.9432539,152.4699808, potenza in uscita: 350 kW)

  3. 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:

  1. Stazione di ricarica ChargePoint (posizione: -32.9599188,151.6240806, potenza in uscita: sconosciuta)

  2. 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:

  1. Taronga Zoo, Sydney, Australia

  2. Stazione di ricarica ChargePoint (posizione: -32.9599188,151.6240806, potenza in uscita: sconosciuta)

  3. 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).

Risultati di ricerca visualizzati sullo schermo