Mit Funktionen in shortcuts.xml können Sie die Arten von Aktionen deklarieren, mit denen Nutzer Ihre App starten und direkt eine bestimmte Aufgabe ausführen können. Eine Funktion besteht aus dem Namen der Aktion und einem intent, der auf das Ziel in Ihrer App ausgerichtet ist, das die Nutzerabsicht auflöst.
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 für Ihre Funktion an:
Funktionsname:Die Aktion, die Ihre App unterstützen soll. In der Komponentendokumentation finden Sie Informationen zur Funktion, für die Funktionsdefinitionen erforderlich sind.
App-Ziel:Das Ziel in Ihrer App, zu dem die Aktion gestartet wird, um die Nutzeranfrage zu erfüllen. Definieren Sie App-Ziele mit
intent-Elementen, die incapabilityeingebettet sind.Parameterzuordnungen:Jeder
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, ein BII, mit dem Nutzer gesprochene
Befehle mit Assistant verwenden können, um ein Training in einer Fitness-App zu starten:
<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 verweist das Attribut <capability> android:name auf
das START_EXERCISE BII. Wenn ein Nutzer dieses BII aufruft, indem er Assistant fragt: "Hey
Google, starte einen Lauf in BeispielApp", erfüllt Assistant die Nutzeranfrage mit den
Informationen, die im eingebetteten intent Element angegeben sind. Der intent in diesem Beispiel definiert die folgenden Details:
- Mit
android:targetPackagewird das Zielanwendungspaket für diesen Intent festgelegt. - Das Feld
android:targetClassgibt die Zielaktivität an:com.example.sampleApp.ExerciseActivity. - Der Intent
parameterdeklariert die Unterstützung für einen BII-Parameterexercise.nameund wie der vom Nutzer erfasste Parameterwert als zusätzliche Daten in derintentübergeben wird.
Verknüpfungen einer Funktion zuordnen
Nachdem Sie eine Funktion definiert haben, können Sie ihre Funktionalität erweitern, indem Sie ihr statische oder dynamische Verknüpfungen zuordnen. Wie Verknüpfungen mit einer 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 startet einen Lauf in Ihrer Fitness-Tracking
App, indem er Assistant fragt: „Hey Google, starte einen Lauf in BeispielApp“ Assistant kann eine Verknüpfung verwenden, um eine Instanz einer capability zu starten, die eine gültige Trainingsentität „Lauf“ für den Parameter exercise.name definiert.