Mit Funktionen in shortcuts.xml können Sie die Arten von Aktionen deklarieren, die Nutzer ausführen können, um Ihre App zu starten und direkt eine bestimmte Aufgabe auszuführen. Eine Funktion besteht aus dem Namen der Aktion und einem intent, das auf das Ziel in Ihrer App verweist, das die Nutzerabsicht erfüllt.
Funktionen in shortcuts.xml definieren
Sie definieren capability-Elemente in einer shortcuts.xml-Ressourcendatei in Ihrem Android-App-Entwicklungsprojekt. So definieren Sie ein capability-Element:
- Erstellen Sie eine
shortcuts.xml-Ressource. Folgen Sie dazu der Anleitung unter Statische Verknüpfungen erstellen. Geben Sie die folgenden erforderlichen Informationen in Ihrer Funktion an:
Name der Funktion: Die Aktion, die Ihre App unterstützen soll. Informationen zu dem Feature, für das Funktionsdefinitionen erforderlich sind, finden Sie in der Komponentendokumentation.
App-Ziel: Das Ziel in Ihrer App, das die Aktion startet, um die Nutzeranfrage zu erfüllen. Definieren Sie App-Ziele mit
intent-Elementen, die imcapabilityverschachtelt sind.Parameterzuordnungen: Jedes
intentkann Parameter enthalten, die alsextra-Daten des Intents übergeben werden.
Das folgende Beispiel zeigt eine Funktionsdefinition in shortcuts.xml für actions.intent.START_EXERCISE, einen BII, mit dem Nutzer per Sprachbefehl mit Assistant ein Training in einer Fitness-App starten können:
<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>
Im vorherigen Beispiel bezieht sich das Attribut <capability> android:name auf die BII START_EXERCISE. Wenn ein Nutzer diesen BII aufruft, indem er Assistant fragt: „Hey Google, starte einen Lauf in BeispielApp“, erfüllt Assistant die Nutzeranfrage mithilfe der Informationen, die im verschachtelten intent-Element angegeben sind. In der intent in diesem Beispiel werden die folgenden Details definiert:
- Mit
android:targetPackagewird das Zielanwendungspaket für diesen Intent festgelegt. - Im Feld
android:targetClasswird die Zielaktivität angegeben:com.example.sampleApp.ExerciseActivity. - Der Intent
parameterdeklariert die Unterstützung für den BII-Parameterexercise.nameund gibt an, wie der vom Nutzer erfasste Parameterwert als zusätzliche Daten imintentübergeben wird.
Kurzbefehle mit einer Funktion verknüpfen
Nachdem Sie eine Funktion definiert haben, können Sie sie erweitern, indem Sie ihr statische oder dynamische Kurzbefehle zuweisen. Wie Verknüpfungen mit einem capability verknüpft werden, hängt von der implementierten Funktion und den tatsächlichen Wörtern in der Anfrage eines Nutzers ab. Beispiel: Ein Nutzer beginnt einen Lauf in deiner Fitness-Tracker-App, indem er Assistant fragt: „Hey Google, starte einen Lauf in Beispiel-App.“ Assistant kann eine Verknüpfung verwenden, um eine Instanz von capability zu starten, die eine gültige Trainingsentität „Laufen“ für den Parameter exercise.name definiert.