Wenn du App Actions für deine Android-App implementierst,
Anfragen bearbeiten müssen, die Varianten eines Themas sind. Sagen Sie zum Beispiel,
implementiert die Fitness-App den integrierten Intent von START_EXERCISE
(BII), um
Nutzende starten eine breite Palette von Trainings, indem sie Assistant Fragen stellen wie:
„Hey Google, starte einen Lauf in Beispiel-App.“
Um diesen Intent zu erfüllen, muss Ihre Logik für den Anfrageabgleich Art des Trainings, einschließlich Variationen wie „Joggen“, „Sprint“, oder „Ethnische Herkunft“. Diese Logik wird mit zunehmender Anzahl unterstützter Trainingseinheiten schnell umständlich.
Bei unterstützten BIIs wie START_EXERCISE
können Sie diesen komplexen Abgleich vermeiden
mithilfe von Inline-Inventar. Ein Inline-Inventar ist eine Reihe statischer
In shortcuts.xml
definierte Android-Tastenkombinationen, die Funktionen und Inhalte darstellen
in Ihrer App.
Jede Tastenkombination enthält eine Element-ID und eine Liste mit Synonymen Sie stellen Variationen dar, wie Nutzende auf den Artikel verweisen könnten. Während des Aufrufs vergleicht der BII den vom Nutzer bereitgestellten BII-Parameter mit der Synonymliste. Wenn ein gefunden wird, wird der BII-Parameter auf das Element der übereinstimmenden Verknüpfung aktualisiert. Kennung.
Mit einem Inline-Inventar kann Google Assistant den BII-Parameter vereinfachen. -Werte, die Ihrer App bei App Action-Aufrufen bereitgestellt werden.
Inline-Inventare funktionieren wie Suchtabellen für BII-Parameter, aus, wie Nutzer auf Funktionen oder Inhalte in Ihrer App verweisen. mit von Ihnen definierten Artikel-IDs. Sie vereinfachen den Anfrageabgleich Ihrer App Logik, indem die Ausführungen die Artikel-IDs aus BII vorhersehen Parameter.
<ph type="x-smartling-placeholder">![User-Flow-Diagramm für Inline-Inventar](https://developer.android.com/static/guide/app-actions/images/appactions-inline-inventory-flow.png?authuser=9&hl=de)
START_EXERCISE
-Funktion, die einen
Inline-Inventar, um die vom Nutzer bereitgestellten Workout-Namen für unterstützte
Übungsarten in der App.
Einschränkungen und Alternativen
Verknüpfungen für Inline-Inventar unterliegen den folgenden Einschränkungen:
- Verknüpfungslimit: Es sind maximal 1.000 Verknüpfungen für Inline-Inventar möglich. pro App definiert ist.
- Synonymlimit:Jede Inline-Inventarverknüpfung darf maximal 20 Zeichen enthalten. Synonymerkennungen.
- Statische Definition:Verknüpfungen für Inline-Inventar sind statisch deklariert
in
shortcuts.xml
. Sie können nur für Ihre Nutzer aktualisiert werden, indem Sie ein neues Version Ihrer App.
Aufgrund der Anforderung an eine statische Konfiguration eignet sich Inline-Inventar am besten sind geeignet, um sich selten ändernde, nicht personalisierte App-Informationen Informationen über die Speisekarte, Busrouten oder Getränkegrößen Für andere Arten von sollten Sie folgende Alternativen in Betracht ziehen:
Webinventar:Damit kann Assistant öffentliche Webinhalte abfragen, wenn Nutzeranfragen mit unterstützten App-Content-IDs abgeglichen. Webinventar Abfragen in Echtzeit während eines Aufrufs ausgeführt werden. Produktkataloge, Beiträge in sozialen Medien und andere häufig aktualisierte Inhalte an Assistant senden.
Dynamische Verknüpfungen:Erweitern Sie Ihr Inventar mit personalisierten App-Inhalten. an Assistant senden. Mit dynamischen Tastenkombinationen können Nutzer häufig verwendete wie die Bestellung eines Lieblingsgetränks über eine App zur Essensbestellung oder das Aufrufen einer Einkaufsliste in einer Notizen-App.
Inline-Inventar erstellen
Ein Inline-Inventar vereinfacht die Entwicklung, indem es Assistant eine praktische Möglichkeit bietet, wie Nutzer die Inhalte und Funktionen Ihrer App anfordern können in die vorhersehbaren IDs, die Ihre Anwendung erwartet. Für Angenommen, Ihre App bietet verschiedene Trainingseinheiten an, die die Nutzenden verwenden können. und Ihre App erwartet, dass Nutzer die folgenden Anfragen Trainingsart:
- Hey Google, starte einen Lauf in Beispiel-App.
- Hey Google, starte mit der Example App joggen.
In der Verknüpfung für Inline-Inventar haben Sie shortcutId
auf "CARDIO_RUN"
festgelegt.
die von deiner App erwartete Trainings-ID. Dann geben Sie „run“ an. und
„joggen“ als Synonyme, die mit shortcutId
verknüpft sind. Wenn ein Nutzer
App Action mit den vorherigen Abfragen teilen, verwendet Assistant die ID
"CARDIO_RUN"
für den BII-Parameter, wenn ein Auftragsausführungs-Intent generiert wird.
Mit dem folgenden Snippet aus einer Beispieldatei app/res/shortcuts.xml
diesem Fall:
<capability android:name="actions.intent.START_EXERCISE">
<intent
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.ExerciseActivity">
<parameter android:name="exercise.name" android:key="exercise" />
</intent>
</capability>
<shortcut android:shortcutId="CARDIO_RUN">
<capability-binding android:key="actions.intent.START_EXERCISE">
<parameter-binding
android:key="exercise.name"
android:value="@array/run_names" />
</capability-binding>
</shortcut>
Im vorherigen Beispiel deklariert das Inline-Inventar shortcut
einen
<parameter-binding>
-Tag innerhalb eines <capability-binding>
-Elements,
Bindung an den BII-Parameter exercise.name
, der im
<capability>
Die String-Array-Ressource @array/run_names
gibt eine Liste von Synonymen in
res/values/arrays.xml
, die Assistant erkennt und dem
"CARDIO_RUN"
Artikel-ID:
<!-- Synonym values for "CARDIO_RUN" inline inventory -->
<resources>
<string-array name="run_names">
<item>Run</item>
<item>Jog</item>
<item>Sprint</item>
</string-array>
</resources>
Wenn für die Capability ein <url-template>
angegeben wird, werden die shortcutId
für
wird ein übereinstimmender Wert in die generierte URL an der entsprechenden
Platzhalter für den Parameter. Der folgende Beispielcode aus einem
In der Datei app/res/shortcuts.xml
wird dieser Fall implementiert:
<capability android:name="actions.intent.START_EXERCISE">
<intent>
<url-template android:value="myapp://workout{?exercise}" />
<parameter android:name="exercise.name" android:key="exercise" />
</intent>
</capability>
<shortcut android:shortcutId="CARDIO_RUN">
<capability-binding android:key="actions.intent.START_EXERCISE">
<parameter-binding
android:key="exercise.name"
android:value="@array/run_names" />
</capability-binding>
</shortcut>
Im vorherigen Beispiel generiert Assistant den Deeplink für die Auftragsausführung
myapp://workout?exercise=CARDIO_RUN
Auftragsausführung mit Shortcut-Intents
Standardmäßig wird über eine Tastenkombination das shortcutId
eines übereinstimmenden Inline-Inventars bereitgestellt
Wert auf den intent
des capability
, an den die Verknüpfung gebunden ist (wie angegeben)
im Tag <capability-binding>
der Verknüpfung. Sie können
können Sie alternativ angeben, dass ein in der Tastenkombination selbst definiertes intent
für
Auftragsausführung durch Hinzufügen eines <shortcut-fulfillment>
-Tags zum capability
.
Mit dem folgenden Code aus einer app/res/shortcuts.xml
-Beispieldatei wird
Shortcut-Ausführung:
<capability android:name="actions.intent.START_EXERCISE">
<shortcut-fulfillment>
<parameter android:name="exercise.name"/>
</shortcut-fulfillment>
</capability>
<shortcut android:shortcutId="CARDIO_RUN">
<capability-binding android:key="actions.intent.START_EXERCISE">
<parameter-binding
android:key="exercise.name"
android:value="@array/run_names" />
</capability-binding>
<intent android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.ExerciseActivity">
<parameter android:name="exercise.name" android:key="exercise" />
</intent>
</shortcut>
Wenn im obigen Beispiel die Nutzerabfrage mit einem Inline-Inventarwert übereinstimmt
für den Parameter exercise.name
, das Tag <shortcut-fulfillment>
gibt an, dass die intent
der gebundenen Tastenkombination für die Auftragsausführung verwendet wird.
Inline-Inventar für BII der Open-App-Funktion
Während Inline-Inventar in der Regel eine optionale Funktion für BIIs ist,
unterstützen, ist es für bestimmte BIIs wie OPEN_APP_FEATURE
erforderlich. Dieses
häufig verwendeter BII ermöglicht Nutzern Deeplinks zu bestimmten App-Funktionen
mit Google Assistant.
Die Open-App-Funktion BII erfordert eine Inline-Bestandsaufnahme der Namen von App-Funktionen,
Prüfen, ob die vom Nutzer angeforderte Funktion vorhanden ist, bevor der Nutzer über einen Deeplink
für Ihre App.
Mit dem folgenden Code aus einer app/res/shortcuts.xml
-Beispieldatei wird dies
BII mit einer einzelnen Verknüpfung, die die Bestellstatusfunktion der App darstellt:
<capability android:name="actions.intent.OPEN_APP_FEATURE">
<intent
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.MyClass">
<parameter
android:name="feature"
android:key="featureParam" />
</intent>
<!-- Required fallback fulfillment to handle when parameters are missing from user query. -->
<intent
android:targetPackage="com.example.myapp"
android:targetClass="com.example.myapp.MyClass">
<parameter
android:name="HOME_SCREEN"
android:key="featureParam" />
</intent>
</capability>
<!-- Inline inventory for OPEN_APP_FEATURE. -->
<shortcut android:shortcutId="ORDER_STATUS">
<capability-binding android:key="actions.intent.OPEN_APP_FEATURE">
<parameter-binding
android:key="feature"
android:value="@array/order_status_names" />
</capability-binding>
</shortcut>
Die String-Array-Ressourcen in res/values/arrays.xml
,
@array/order_status_names
, gibt eine Liste von
Synonyme für diese Funktion:
<resources>
<string-array name="order_status_names">
<item>Order status</item>
<item>Orders</item>
<item>Order history</item>
</string-array>
</resources>
Mit der vorherigen Funktion kann Assistant eine Vielzahl von Wortgruppen für dieselbe Funktion:
- „Hey Google, zeig meinen Bestellstatus in der Beispiel-App an.“
- „Hey Google, zeig mir meine Bestellungen in der Beispiel-App.“
- „Hey Google, zeig meinen Bestellverlauf in der Beispiel-App an.“
Inline-Inventar testen
Testen Sie Ihr Inventar, indem Sie sich die BII-Parameterwerte ansehen, die Assistant für
und gleichzeitig
relevante App Action-Funktionen erfüllen. Ein Inline-
Inventar nutzt den vom Nutzer bereitgestellten Wert eines inventargebundenen BII
mit dem shortcutId
einer übereinstimmenden Inline-Inventarverknüpfung.
Für
Eine BII-Funktion START_EXERCISE
könnte z. B. ein Inline-Inventar verwenden, um
den vom Nutzer bereitgestellten BII-Parameter „run“ übersetzen mit der entsprechenden Übung
ID, "CARDIO_RUN"
.
Mit dem Google Assistant-Plug-in können Sie eine Vorschau Ihrer Inline-Inventar-App ansehen. Aktionen in Assistant auf einem Testgerät. Testen Sie Ihr Inventar mit dem Plug-in, indem Sie Gehen Sie dazu so vor:
- Konfigurieren Sie die inventargebundenen Parameter Ihrer BII-Funktion mit Synonymwerten, die Ihrem Inline-Inventar zugeordnet sind.
- Lösen Sie den BII aus dem Plug-in aus und rufen Sie ihn auf Ihrem Testgerät auf.
- Untersuchen Sie die resultierenden Parameterwerte, die Assistant Ihren