Aggiungi funzionalità alle scorciatoie

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. Una funzionalità è costituita dal nome dell'azione e da un intent che ha come target la destinazione nella tua app che risolve l'intent dell'utente.

Definisci le funzionalità in shortcuts.xml

Definisci gli elementi capability in un file di risorse shortcuts.xml nel tuo progetto di sviluppo di app per Android. Per definire un elemento capability:

  1. Crea una risorsa shortcuts.xml seguendo le istruzioni riportate in Creare scorciatoie statiche.
  2. Includi le seguenti informazioni obbligatorie nella tua funzionalità:

    • Nome funzionalità:l'azione che vuoi che la tua app supporti. Consulta la documentazione del componente per la funzionalità che richiede definizioni delle funzionalità.

    • Destinazione app:la destinazione nella tua app in cui viene avviata l'azione per soddisfare la richiesta dell'utente. Definisci le destinazioni app utilizzando gli elementi intent nidificati all'interno di capability.

    • Mappature dei parametri:ogni intent può contenere parametri da trasmettere come dati extra dell'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 <capability> android:name fa riferimento all'intent integrato START_EXERCISE. Se un utente richiama questo intent integrato chiedendo all'assistente "Hey Google, inizia una corsa in ExampleApp", l'assistente soddisfa la richiesta dell'utente utilizzando le informazioni fornite nell'elemento intent nidificato. intent in questo esempio definisce i seguenti dettagli:

  • android:targetPackage imposta il pacchetto dell'applicazione di destinazione per questo intent.
  • Il campo android:targetClass specifica l'attività di destinazione: com.example.sampleApp.ExerciseActivity.
  • L'intent parameter dichiara il supporto per un parametro BII exercise.name e come passare il valore del parametro, raccolto dall'utente, come dati aggiuntivi in intent.

Associare 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 in una richiesta dell'utente. Ad esempio, quando un utente inizia una corsa nella tua app di monitoraggio dell'attività fisica chiedendo all'assistente: "Hey Google, inizia una corsa in ExampleApp". L'assistente può utilizzare una scorciatoia per avviare un'istanza di capability che definisce un'entità di allenamento valida di "corsa" per il parametro exercise.name.