Le funzionalità in shortcuts.xml ti consentono di dichiarare i tipi di azioni che gli utenti possono eseguire per avviare la tua app ed eseguire direttamente un'attività specifica. Una funzionalità è costituita dal nome dell'azione e da un intent che ha come target la destinazione nella tua app che risolve lo user intent.
Definisci le funzionalità in shortcuts.xml
Puoi definire gli elementi capability in un file di risorse shortcuts.xml nel tuo progetto di sviluppo di app per Android. Per definire un elemento capability:
- Crea una risorsa
shortcuts.xmlseguendo le istruzioni riportate in Crea scorciatoie statiche. Includi le seguenti informazioni obbligatorie nella tua funzionalità:
Nome della funzionalità: l'azione che vuoi che la tua app supporti. Consulta la documentazione del componente per la funzionalità che richiede le definizioni delle funzionalità.
Destinazione dell'app: la destinazione nell'app in cui viene avviata l'azione per soddisfare la richiesta dell'utente. Definisci le destinazioni dell'app utilizzando gli elementi
intentnidificati all'interno dicapability.Mappature dei parametri: ogni
intentpotrebbe contenere parametri da passare come datiextradell'intent.
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 i comandi
vocali con l'assistente per iniziare un allenamento in un'app di 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 android:name <capability> fa riferimento
all'intent integrato START_EXERCISE. Se un utente richiama questo 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. La risorsa intent in questo esempio definisce i seguenti dettagli:
android:targetPackageimposta il pacchetto dell'applicazione di destinazione per questo intent.- Il campo
android:targetClassspecifica l'attività di destinazione:com.example.sampleApp.ExerciseActivity. - L'intent
parameterdichiara il supporto di un parametro BIIexercise.namee come passare il valore parametro, raccolto dall'utente, come dati aggiuntivi inintent.
Associa le scorciatoie a una funzionalità
Una volta definita una funzionalità, puoi estenderla 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 dell'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.