Il controllo vocale consente ai conducenti di eseguire attività senza togliere le mani dal volante o distogliere lo sguardo dalla strada. Con le Azioni app per le app per auto, i conducenti possono utilizzare Gemini o l'Assistente Google per controllare le app Android sul sistema di infotainment dicendo, ad esempio, "Hey Google, trova parcheggio in strada su ExampleApp".
Le Azioni app funzionano con le app per auto relative ai punti d'interesse (POI). Questa guida illustra i requisiti e le limitazioni specifici per l'integrazione delle Azioni app nella tua app per POI.
Come funziona
Le Azioni app estendono la funzionalità in-app a Gemini o all'Assistente Google, consentendo agli utenti di accedere alle funzionalità dell'app utilizzando la voce. Quando un utente richiama un'Azione app,
Gemini o l'Assistente Google associa la query a un intent integrato (BII) dichiarato nella risorsa
shortcuts.xml dell'app e avvia l'app nella schermata richiesta.
Dichiari il supporto per i BII nella tua app utilizzando gli elementi capability di Android.
Quando carichi l'app utilizzando Google Play Console, Google registra le funzionalità dichiarate nell'app e le rende disponibili agli utenti per l'accesso da Gemini o dall'Assistente Google.
- Un utente attiva Gemini o l'Assistente Google ed effettua una richiesta vocale per un'app specifica.
- Gemini o l'Assistente Google associa la richiesta a un modello pre-addestrato (BII) ed estrae tutti i parametri supportati dal BII.
- In questo esempio, Gemini o l'Assistente Google associa la query al
GET_CHARGING_STATIONBII, estrae il parametro di località "SFO" e traduce la località nelle relative coordinate geografiche. - L'app viene attivata tramite la definizione di fulfillment per questo BII.
- L'app elabora il fulfillment, visualizzando le opzioni delle stazioni di ricarica nel sistema di infotainment del conducente.
Limitazioni
Le implementazioni delle Azioni app per auto presentano le seguenti limitazioni:
Le Azioni app per auto devono essere completate utilizzando i link diretti di Android. Per informazioni sui completamenti delle Azioni app, vedi Fornire i dettagli di completamento per gli intent integrati.
Le implementazioni per auto supportano solo i seguenti BII:
- Parcheggio:
GET_PARKING_FACILITY - Ricarica:
GET_CHARGING_STATION
- Parcheggio:
Requisiti
Per preparare l'app per auto per le Azioni app:
- Soddisfa i requisiti generali delle app Android per le Azioni app.
- Includi la dipendenza della libreria di app per auto. Per maggiori dettagli, vedi Dichiarare le dipendenze.
Determinare l'intent e il completamento
Il primo passo per attivare la voce in un'app per auto con le Azioni app è determinare quali comandi vocali dell'utente, o intent, sono supportati dall'app. Poi definisci un completamento per ogni intent per specificare in che modo l'app deve soddisfare la richiesta.
Quali intent sono supportati dall'app per auto?
Le Azioni app forniscono modelli vocali pre-addestrati, chiamati intent integrati (BII), che possono comprendere e interpretare i comandi vocali di un utente quando dice, "Hey Google". Per rispondere alle richieste vocali, devi semplicemente dichiarare a Gemini o all'Assistente Google i BII supportati dalla tua app. Ad esempio, se vuoi che la tua app ti aiuti a trovare un parcheggio, implementa il
GET_PARKING_FACILITYBII. In alternativa, implementa ilGET_CHARGING_STATIONBII per aiutare gli utenti a trovare le stazioni di ricarica per auto elettriche.In che modo l'app deve completare ogni intent?
L'app completa la richiesta vocale avviandosi nella schermata appropriata. Le Azioni app forniscono al completamento i parametri estratti dalla richiesta dell'utente, consentendoti di personalizzare la risposta in base alle esigenze dell'utente.
Integrare le Azioni app
Dopo aver determinato la strategia di completamento, segui questi passaggi per attivare la voce nell'app per auto:
Apri l'attività principale
AndroidManifest.xmle dichiara il supporto per le scorciatoie Android. Utilizza gli elementi di scorciatoiacapabilityper dichiarare a Gemini o all'Assistente Google i BII supportati dalla tua app. Per maggiori informazioni, vedi Aggiungere funzionalità.<!-- AndroidManifest.xml --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />Poi aggiungi un
<intent-filter>elemento aAndroidManifest.xml. In questo modo, Gemini o l'Assistente Google può utilizzare i link diretti per connettersi ai contenuti dell'app.Per il completamento di Android Auto, il
<intent-filter>è lo stesso della tua app mobile.Per Android Automotive OS, la sessione
CarAppServicedell'app attiva Gemini o l'Assistente Google. Per consentire a una sessione di attivare il 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 già un file
shortcuts.xmlnella directoryres/xmldell'app, creane uno nuovo. Per informazioni su come le Azioni app utilizzano le scorciatoie Android, vedi Creare shortcuts.xml.In
shortcuts.xml, implementa unacapabilityper il BII scelto. Poi, aggiungi un<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 per auto per gestire il completamento delle Azioni app in entrata. Gli esempi seguenti mostrano la gestione degli 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
Le Azioni app forniscono strumenti per visualizzare l'anteprima e testare l'app. Visita la panoramica delle Azioni app per informazioni su questi strumenti e per dettagli su come pubblicare l'app per auto con funzionalità vocali sul Play Store.