Il controllo vocale consente ai conducenti di svolgere le attività senza togliere le mani dal volante o che lo facciano fuori dalla strada. Con Azioni app per le app per auto, i conducenti possono usare l'Assistente Google per controllare le app Android sul proprio sistema di infotainment tramite dicendo frasi del tipo "Hey Google, trova parcheggio in strada su ExampleApp".
Le Azioni app sono compatibili con le app per auto di punti d'interesse (PDI). Questa guida tratta le limitazioni e requisiti specifici per l'integrazione delle Azioni app nel PDI dell'app.
Come funziona
Le Azioni app estendono la funzionalità in-app all'assistente, consentendo agli utenti di
accedere alle funzionalità delle app tramite comandi vocali. Quando un utente richiama un'Azione app,
L'assistente associa la query a un intent integrato (BII) dichiarato nella
shortcuts.xml
e avvia l'app nella schermata richiesta.
Dichiari il supporto degli intent integrati nella tua app utilizzando gli elementi capability
di Android.
Quando carichi l'app utilizzando Google Play Console, Google registra il
dichiarate nella tua app e le rende disponibili per l'accesso da parte degli utenti
dall'assistente.
- Un utente attiva l'assistente ed effettua una richiesta vocale per un'app specifica.
- L'assistente abbina la richiesta a un modello preaddestrato (BII) ed estrae a qualsiasi parametro supportato dall'intent integrato.
- In questo esempio, l'assistente associa la query a
GET_CHARGING_STATION
L'intent integrato estrae il parametro di località "SFO" e traduce la posizione in le sue coordinate geografiche. - L'app viene attivata tramite la sua definizione di completamento per questo intent integrato.
- L'app elabora l'evasione degli ordini, mostrando le opzioni delle stazioni di ricarica in il sistema di infotainment del conducente.
Limitazioni
Le implementazioni per le auto delle Azioni app presentano le seguenti limitazioni:
Le Azioni app dell'auto devono essere completate utilizzando i link diretti di Android. Per informazioni al completamento delle Azioni app, vedi Fornisci i dettagli di completamento per gli intent integrati.
Le implementazioni per le auto supportano solo i seguenti intent integrati:
- Parcheggio -
GET_PARKING_FACILITY
- In carica -
GET_CHARGING_STATION
- Parcheggio -
Requisiti
Per preparare l'app dell'auto per le Azioni app, segui questi passaggi:
- Devi soddisfare i requisiti generali dell'app per Android per Azioni app.
- Includi la dipendenza dalla libreria di app dell'auto. Per maggiori dettagli, vedi Dichiarare le dipendenze.
Determina l'intenzione e la realizzazione
Il primo passaggio per attivare la voce di un'app per auto con Azioni app è stabilire I comandi vocali, o intent dell'utente, supportati dalla tua app. Quindi definisci un per ogni intent per specificare in che modo la tua app deve soddisfare la richiesta.
Quali intent supporta la tua app per auto?
Le Azioni app forniscono modelli vocali preaddestrati, chiamati intent integrati (BII), che è in grado di comprendere e interpretare i comandi vocali di un utente quando dice: "Hey Google". Per rispondere alle richieste vocali, dichiari semplicemente all'assistente gli intent integrati supportati dalla tua app. Ad esempio, se vuoi che la tua app ti aiuti per trovare un parcheggio, devi implementare
GET_PARKING_FACILITY
intent integrato. In alternativa, implementa l'intent integratoGET_CHARGING_STATION
per aiutare gli utenti a trovare impianti elettrici stazioni di ricarica per auto.In che modo la tua app deve soddisfare ogni intento?
L'app soddisfa la richiesta vocale avviandosi nell'app schermo. Le Azioni app forniscono il fulfillment con i parametri estratti da la richiesta dell'utente, consentendoti di personalizzare la risposta in base alle sue esigenze.
Integrare le Azioni app
Dopo aver definito la tua strategia di evasione degli ordini, segui questi passaggi per l'attivazione vocale l'app della tua auto:
Apri la tua attività principale
AndroidManifest.xml
e dichiara il supporto per Android scorciatoie. Utilizzi elementi delle scorciatoie dicapability
per dichiarare all'assistente gli intent integrati supportati dalla tua app. Per ulteriori informazioni, vedi Aggiungi funzionalità.<!-- AndroidManifest.xml --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
Poi, aggiungi un elemento
<intent-filter>
aAndroidManifest.xml
. Questo Consente all'assistente di usare i link diretti per connettersi ai contenuti della tua app.Per la distribuzione Android Auto, il campo
<intent-filter>
è uguale al app mobile.Per Android Automotive OS, gli attivatori di sessione
CarAppService
della tua app Assistente Google. Per consentire a una sessione di attivare il tuo link diretto, specifica un<intent-filter>
nell'elemento<activity>
diAndroidManifest.xml
.
<!-- AndroidManifest.xml --> <activity ... android:name="androidx.car.app.activity.CarAppActivity"> ... <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="YOUR_SCHEME" android:host="YOUR_HOST" /> </intent-filter> </activity>
Se non hai ancora un file
shortcuts.xml
, ires/xml
della tua app esistente, creane una nuova. Per informazioni su come Azioni app utilizza Scorciatoie per Android, vedi Creare scorciatoie.xml.In
shortcuts.xml
, implementacapability
per l'intent integrato scelto. Poi, aggiungi un elemento<intent>
nidificato per definire il completamento dell'app.<!-- shortcuts.xml --> <?xml version="1.0" encoding="utf-8"?> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <capability android:name="actions.intent.GET_PARKING_FACILITY"> <intent> <url-template android:value="YOUR_SCHEME://YOUR_HOST{?name,address,disambiguatingDescription,latitude,longitude}"> <!-- Facility name, e.g. "Googleplex" --> <parameter android:name="parkingFacility.name" android:key="name"/> <!-- Address, e.g. "1600 Amphitheatre Pkwy, Mountain View, CA 94043" --> <parameter android:name="parkingFacility.address" android:key="address"/> <!-- Disambiguate the type of service, e.g. "valet" --> <parameter android:name="parkingFacility.disambiguatingDescription" android:key="disambiguatingDescription"/> <!-- Latitude, e.g. "37.3861" --> <parameter android:name="parkingFacility.geo.latitude" android:key="latitude"/> <!-- Longitude, e.g. "-122.084" --> <parameter android:name="parkingFacility.geo.longitude" android:key="longitude"/> </intent> </capability> </shortcuts>
Infine, aggiorna la logica
Session()
dell'app dell'auto per gestire l'app in entrata Completamento azioni. I seguenti esempi dimostrano la gestione dell'intent perSession.onCreateScreen()
eSession.onNewIntent()
.onCreateScreen()
Kotlin
@Override fun onCreateScreen(@NonNull intent: Intent): Screen { if (intent.getData() != null) { val uri: Uri = intent.getData() // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
Java
@Override public Screen onCreateScreen(@NonNull Intent intent) { if (intent.getData() != null) { Uri uri = intent.getData(); // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
onNewIntent()
Kotlin
@Override fun onNewIntent(@NonNull intent: Intent): Screen { if (intent.getData() != null) { val uri: Uri = intent.getData() // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
Java
@Override public void onNewIntent(@NonNull Intent intent) { if (intent.getData() != null) { Uri uri = intent.getData(); // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
Visualizzare l'anteprima, testare e pubblicare l'app
Azioni app fornisce strumenti per visualizzare in anteprima e testare la tua app. Visita il Panoramica delle Azioni app per informazioni su questi strumenti e per i dettagli su come pubblicare la tua app per auto con riconoscimento vocale sul Play Store.