Le funzionalità in shortcuts.xml
ti consentono di dichiarare i tipi di azioni che gli utenti possono intraprendere per avviare la tua app ed eseguire direttamente un'attività specifica.
Ad esempio, le azioni app dell'Assistente Google utilizzano funzionalità che consentono agli sviluppatori di estendere le funzionalità in-app agli intent integrati (BIIs), consentendo agli utenti di attivare e controllare queste funzionalità utilizzando i comandi vocali. Una funzionalità è costituita dal
nome dell'azione e da un intent
che ha come target la destinazione nella tua app e
risolve l'intent dell'utente.
Definire le funzionalità in shortcuts.xml
Definisci gli elementi capability
in un file di risorse shortcuts.xml
nel progetto di sviluppo di app per Android. Per definire un elemento capability
:
- Crea una risorsa
shortcuts.xml
seguendo le istruzioni riportate in Creare scorciatoie statiche. Includi le seguenti informazioni obbligatorie nella tua funzionalità:
Nome della funzionalità:l'azione che vuoi che l'app supporti. Fai riferimento alla documentazione del componente per la funzionalità che richiede definizioni delle funzionalità. I comandi vocali di App Actions utilizzano l'intent integrato
Action ID
per i nomi delle funzionalità, che puoi trovare nel riferimento degli intent integrati. Ad esempio, l'intent integratoGET_THING
elenca il proprioAction ID
comeactions.intent.GET_THING
.Destinazione dell'app:la destinazione nell'app in cui viene lanciata l'azione per soddisfare la richiesta dell'utente. Definisci le destinazioni dell'app utilizzando elementi
intent
nidificati all'interno dicapability
.Mappature dei parametri:ogni
intent
potrebbe contenere parametri da passare come datiextra
dell'intent. Ad esempio, ogni BII di azioni app include campi che rappresentano le informazioni fornite spesso dagli utenti nelle query che attivano il BII.
L'esempio seguente mostra una definizione di funzionalità in shortcuts.xml
per actions.intent.START_EXERCISE
, un intent integrato che consente agli utenti di utilizzare comandi vocali con l'assistente per iniziare un allenamento in un'app per il fitness:
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<capability android:name="actions.intent.START_EXERCISE">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.example.sampleApp"
android:targetClass="com.example.sampleApp.ExerciseActivity">
<parameter
android:name="exercise.name"
android:key="exerciseType"/>
</intent>
</capability>
</shortcuts>
Nell'esempio precedente, l'attributo <capability>
android:name
fa riferimento all'intent integrato START_EXERCISE
. Se un utente richiama questa BII chiedendo all'assistente "Hey
Google, avvia una corsa in ExampleApp", l'assistente soddisfa la richiesta dell'utente utilizzando
le informazioni fornite nell'elemento intent
nidificato. Il parametro intent
in questo esempio
definisce i seguenti dettagli:
android:targetPackage
imposta il pacchetto dell'applicazione target per questo intento.- Il campo
android:targetClass
specifica l'attività di destinazione:com.example.sampleApp.ExerciseActivity
. - L'intent
parameter
dichiara il supporto di un parametro BIIexercise.name
e come passare il valore del parametro, raccolto dall'utente, come dati aggiuntivi inintent
.
Associare le scorciatoie a una funzionalità
Una volta definita una funzionalità, puoi estenderne la funzionalità associandovi scorciatoie statiche o dinamiche. Il modo in cui le scorciatoie sono collegate a un capability
dipende dalla funzionalità implementata e dalle parole effettive incluse nella richiesta di un utente. Ad esempio, quando un utente inizia una corsa nella tua app di monitoraggio dell'attività fisica chiedendo all'assistente "Hey Google, avvia una corsa in AppEsempio". L'assistente può utilizzare una scorciatoia per avviare un'istanza di un capability
che definisce un'entità di esercizio valida di "corsa" per il parametro exercise.name
.
Per ulteriori informazioni sull'associazione delle scorciatoie alle Azioni app, consulta la Panoramica di Azioni app.