Aggiungi funzionalità alle scorciatoie

Le funzionalità di shortcuts.xml ti consentono di dichiarare i tipi di azioni che gli utenti possono per avviare l'app ed eseguire direttamente un'attività specifica.

Ad esempio, le Azioni app dell'Assistente Google utilizzano funzionalità per consentire agli sviluppatori estendere le funzionalità in-app agli intent integrati (BII), consentendo agli utenti di attivare e controllare queste funzionalità con i comandi vocali. Una funzionalità consiste nel nome dell'azione e intent che ha come target la destinazione nell'app che risolve l'intento dell'utente.

Definire le funzionalità in shortcuts.xml

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

  1. Crea una risorsa shortcuts.xml seguendo le istruzioni in Creare scorciatoie statiche.
  2. 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 integrato GET_THING elenca il proprio Action ID come actions.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 di capability.

    • Mappature dei parametri: ogni intent può contenere parametri da impostare trasmessi come dati extra 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 capacità in shortcuts.xml per actions.intent.START_EXERCISE, un intent integrato che consente agli utenti di usare comandi con l'assistente per iniziare un esercizio in un'app per l'attività fisica:

<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 " Google, avvia un'esecuzione in ExampleApp", l'assistente soddisfa la richiesta dell'utente utilizzando informazioni fornite nell'elemento intent nidificato. Il parametro intent in questo esempio definisce i seguenti dettagli:

  • android:targetPackage imposta il pacchetto dell'applicazione di destinazione per questa l'intento.
  • Il campo android:targetClass specifica l'attività di destinazione: com.example.sampleApp.ExerciseActivity.
  • L'intent parameter dichiara il supporto per un parametro dell'intent integrato 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 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". Assistente puoi usare una scorciatoia per avviare un'istanza di un capability che definisce un entità di allenamento "corsa" per il parametro exercise.name.

Per ulteriori informazioni sull'associazione delle scorciatoie alle Azioni app, consulta la Panoramica di Azioni app.