Für viele Intents besteht die beste Reaktion darin, eine einfache Antwort zu geben, oder schnelle interaktive User Experience bieten. Sie können eine Android-App-Widget in Google Assistant für diese Art von Intents.
In diesem Leitfaden erfahren Sie, wie Assistant-Anfragen mithilfe von Widgets ausgeführt werden können und wie Sie Verbessere mit App Actions deine Widget-Nutzung für Assistant Widgets-Erweiterungsbibliothek
Vorteile
Widgets sind kleine App-Ansichten, die auf Android-Geräten eingebettet werden können. wie dem Launcher oder Sperrbildschirm. Mit App Actions können Sie die Auswirkungen Ihrer Widgets, indem Sie sie zur Anzeige in Assistant freigeben:
- Erkennung:Widgets werden proaktiv als Reaktion auf die Abfragen in natürlicher Sprache.
- Interaktion:Widgets werden angezeigt, wenn Nutzer die App per Sprachbefehl bedienen, z. B. wenn sie die App verwenden Assistant zeigt persönliche Ergebnisse auf dem Sperrbildschirm an und an Android Auto
- Bindung:Lassen Sie Nutzer die Widgets anpinnen, die in Assistant zu ihrem Launcher Für die Funktion zum Anpinnen ist das Widgets-Erweiterungsbibliothek
So zeigt Assistant Widgets an
Es gibt zwei Möglichkeiten, wie Nutzer Widgets in Assistant aufrufen können:
- Ausdrückliche Anforderung eines Widgets anhand des Namens.
- Eine Anfrage an Assistant wird gesendet, Integrierter Intent (BII) oder benutzerdefinierter Intent, der für Widget-Ausführung.
Expliziter Aufruf
Um Widgets für installierte Apps explizit aufzurufen, können Nutzer Assistant fragen Dinge wie:
- „Hey Google, zeig mir das ExampleApp-Widget.“
- „Widgets aus ExampleApp.“
Assistant zeigt diese Widgets mit der allgemeinen Einführung an: „BeispielApp“ sagt: Hier ist ein Widget.“ Assistant gibt dagegen Widgets zurück, die in ohne dass der App-Entwickler etwas dafür tun muss, wird diese Aufrufmethode setzt voraus, dass der Nutzer das Widget explizit kennt, um es anfordern zu können. Bis die Widget-Erkennung zu vereinfachen, verwenden Sie die in der nächsten Abschnitt.
Intent-Ausführung
Damit Ihre Widgets leichter zu finden sind,
Sprachanfragen, die Nutzer in Assistant ausführen. Sie können beispielsweise
wenn ein Nutzer den BII GET_EXERCISE_OBSERVATION
in Ihrem
mit der Frage: „Hey Google, wie viele Kilometer bin ich diese Woche gelaufen?“
BeispielApp?“ Die Integration von Widgets mit
App Actions bietet folgende Vorteile:
- Parameterzugriff:Assistant stellt die extrahierten Intent-Parameter bereit. von der Nutzeranfrage an Ihr Widget, individuelle Antworten.
- Benutzerdefinierte Einführung in Text-in-Sprache:Sie können einen Text-in-Sprache-String angeben. die Assistant bei der Anzeige deines Widgets ankündigt.
- Widget-Anpinnen:In der Nähe von Assistant wird die Schaltfläche Widget hinzufügen angezeigt. Ihr Widget, sodass Nutzer Ihre Widgets ganz einfach an ihren Launcher anpinnen können.
Widget-Ausführung implementieren
So implementieren Sie die Widget-Auftragsausführung für Ihre Intents:
- Implementieren Sie ein Android-Widget, indem Sie die Schritte ausführen unter Erstellen Sie ein einfaches Widget.
- Fügen Sie in der Ressourcendatei
shortcuts.xml
Ihrer App ein<app-widget>
-Element zu Ihrer Fähigkeit, Details zur Ausführung und BII-Tags<parameter>
Aktualisieren Sie Ihr um die Parameter zu handhaben. - Fügen Sie die erforderliche Widgets-Erweiterungsbibliothek hinzu, mit der Sie Assistant übergibt BII-Namen und -Parameter an deine Widgets. Außerdem können Sie damit individuelle Einführungen und Widget-Anpinnen Funktionalität.
Im folgenden Abschnitt wird das <app-widget>
-Schema für shortcuts.xml
beschrieben.
Widget-Schema
<app-widget>
-Elemente sind als Ausführungen im
<capability>
-Elemente in shortcuts.xml
. Folgende Voraussetzungen müssen erfüllt sein:
, sofern nicht als optional angegeben:
Tag „shortcuts.xml“ | Enthalten in | Attribute |
---|---|---|
<app-widget> |
<capability> |
|
<parameter> |
<app-widget> |
|
<extra> |
<app-widget> |
|
Widget-Schemabeschreibung
<app-widget>
Widget-Auftragsausführungselement der obersten Ebene.
Attribute:
android:identifier
: die Kennung für diese Auftragsausführung. Dieser Wert muss darf in der Auftragsausführung von<app-widget>
und<intent>
eindeutig sein -Elementen, die in einem<capability>
definiert sind.android:targetClass
: der vollständige Klassenname vonAppWidgetProvider
für mit der Absicht umgehen.
<Parameter>
Ordnet einen BII-Parameter einem <parameter>
-Wert des Intents zu. Sie können 0 oder 1
weitere Parameter für jedes <app-widget>
-Element. Während der Auftragsausführung
Parameter übergeben, indem die Extras für die Widget-Instanz als Schlüssel/Wert-Paare aktualisiert werden,
im folgenden Format:
- Schlüssel: der für den Parameter definierte
android:key
- Wert: Der Wert, den der BII aus der Spracheingabe eines Nutzers extrahiert.
Du kannst auf diese Extras zugreifen, indem du getAppWidgetOptions()
auf dem zugehörigen
AppWidgetManager
-Objekt, das ein Bundle
-Objekt mit dem Namen
den auslösenden BII und seine Parameter. Weitere Informationen finden Sie unter
Extrahieren Sie Parameterwerte, um Details zu erhalten.
Weitere Informationen zum BII-Parameterabgleich finden Sie unter Parameterdaten und Abgleich:
<Extra>
Optionales Tag, das angibt, dass eine benutzerdefinierte Text-in-Sprache-Einführung verwendet wird dieses Widgets. Für dieses Tag sind folgende Attributwerte erforderlich:
android:name
:"hasTts"
android:value
:"true"
Beispielcode
Im folgenden Beispiel aus einer shortcuts.xml
-Datei wird ein Widget veranschaulicht:
Konfiguration der Auftragsausführung für ein
BII-Funktion von GET_EXERCISE_OBSERVATION
:
<capability android:name="actions.intent.GET_EXERCISE_OBSERVATION">
<app-widget
android:identifier="GET_EXERCISE_OBSERVATION_1"
android:targetClass="com.exampleapp.providers.exampleAppWidgetProvider"
android:targetPackage="com.exampleapp">
<parameter
android:name="exerciseObservation.aboutExercise.name"
android:key="exercisename">
</parameter>
<extra android:name="hasTts" android:value="true"/>
</app-widget>
</capability>
Sie können mehrere <app-widget>
-Elemente angeben oder eine Kombination aus
<app-widget>
- und <intent>
-Elemente pro Funktion. Mit diesem Ansatz können Sie
bieten ein individuelles Erlebnis basierend auf verschiedenen Kombinationen von Parametern
die von den Nutzenden bereitgestellt werden. Beispiel: Wenn der Nutzer keinen Rückgabeort angibt
können Sie sie auf die Aktivität in Ihrer App verweisen,
zum Festlegen der Abhol- und Abgabeorte. Weitere Informationen finden Sie in der
Weitere Informationen finden Sie im Abschnitt Fallback-Intents.
Definition von Fallback-Intents.
Parameterwerte extrahieren
In der folgenden Beispielklasse AppWidgetProvider
hat die private Funktion
Mit updateAppWidget()
werden der BII-Name und die Parameter aus dem
Widget-Optionen Bundle
:
Kotlin
package com.example.exampleapp //... Other module imports import com.google.assistant.appactions.widgets.AppActionsWidgetExtension /** * Implementation of App Widget functionality. */ class MyAppWidget : AppWidgetProvider() { override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray ) { // There might be multiple widgets active, so update all of them for (appWidgetId in appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId) } } private fun updateAppWidget( context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int ) { val widgetText: CharSequence = context.getString(R.string.appwidget_text) // Construct the RemoteViews object val views = RemoteViews(context.packageName, R.layout.my_app_widget) views.setTextViewText(R.id.appwidget_text, widgetText) // Extract the name and parameters of the BII from the widget options val optionsBundle = appWidgetManager.getAppWidgetOptions(appWidgetId) val bii = optionsBundle.getString(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_BII) // "actions.intent.CREATE_TAXI_RESERVATION" val params = optionsBundle.getBundle(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_PARAMS) if (params != null && params.containsKey("dropoff")) { val dropoffLocation = params.getString("dropoff") // Build your RemoteViews with the extracted BII parameter // ... } appWidgetManager.updateAppWidget(appWidgetId, views) } }
Java
package com.example.exampleapp; //... Other module imports import com.google.assistant.appactions.widgets.AppActionsWidgetExtension; /** * Implementation of App Widget functionality. */ public class MyAppWidget extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // There might be multiple widgets active, so update all of them for (int appWidgetId : appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId); } } private static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { CharSequence widgetText = context.getString(R.string.appwidget_text); // Construct the RemoteViews object RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_app_widget); views.setTextViewText(R.id.appwidget_text, widgetText); // Extract the name and parameters of the BII from the widget options Bundle optionsBundle = appWidgetManager.getAppWidgetOptions(appWidgetId); String bii = optionsBundle.getString(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_BII); // "actions.intent.CREATE_TAXI_RESERVATION" Bundle params = optionsBundle.getBundle(AppActionsWidgetExtension.EXTRA_APP_ACTIONS_PARAMS); if (params != null && params.containsKey(("dropoff"))){ String dropoffLocation = params.getString("dropoff"); // Build your RemoteViews with the extracted BII parameter // ... } appWidgetManager.updateAppWidget(appWidgetId, views); } }
Widget-Erweiterungsbibliothek
Mit der Erweiterungsbibliothek für Widgets für App Actions werden Ihre Widgets für sprachgesteuerten Assistant-Funktionen nutzen. Mit dieser Bibliothek können Ihre Widgets wichtige Informationen zur Auftragsausführung vom auslösenden BII, einschließlich des BII Name und alle Intent-Parameter, die aus der Nutzerabfrage extrahiert wurden.
Mit dieser Maven-Bibliothek kannst du eine benutzerdefinierte Einführung in die Sprachausgabe anbieten für jedes Widget, sodass Assistant eine Zusammenfassung der Inhalte ansagen kann, die gerade visuell gerendert wird. Außerdem wird das Anpinnen des Launchers aktiviert, Nutzer können die in Assistant angezeigten Widgets ganz einfach in ihrem Launcher speichern. Bildschirmen.
Fügen Sie die Bibliothek zuerst dem Abschnitt „Abhängigkeiten“ der
build.gradle
-Datei für Ihr App-Modul:
dependencies {
//...
implementation "com.google.assistant.appactions:widgets:0.0.1"
}
Individuelle Einführungen
Nach dem Import der Widget-Erweiterungsbibliothek kannst du benutzerdefinierte Text-in-Sprache angeben
Einführungen für Ihre Widgets. So fügen Sie Ihre Definition zum
AppWidgetProvider
, öffnen Sie die Klasse in Ihrer IDE und importieren Sie die Widget-Erweiterung.
Bibliothek:
Kotlin
import com.google.assistant.appactions.widgets.AppActionsWidgetExtension
Java
import com.google.assistant.appactions.widgets.AppActionsWidgetExtension;
Kotlin
package com.example.exampleapp //... Other module imports import com.google.assistant.appactions.widgets.AppActionsWidgetExtension /** * Implementation of App Widget functionality. */ object MyAppWidget : AppWidgetProvider() { fun updateAppWidget( context: Context?, appWidgetManager: AppWidgetManager, appWidgetId: Int ) { val appActionsWidgetExtension = AppActionsWidgetExtension.newBuilder(appWidgetManager) .setResponseSpeech("Hello world") // TTS to be played back to the user .setResponseText("Hello world!") // Response text to be displayed in Assistant .build() // Update widget with TTS appActionsWidgetExtension.updateWidget(appWidgetId) // Update widget UI appWidgetManager.updateAppWidget(appWidgetId, views) } }
Java
package com.example.exampleapp; //... Other module imports import com.google.assistant.appactions.widgets.AppActionsWidgetExtension; /** * Implementation of App Widget functionality. */ public class MyAppWidget extends AppWidgetProvider { static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { AppActionsWidgetExtension appActionsWidgetExtension = AppActionsWidgetExtension.newBuilder(appWidgetManager) .setResponseSpeech("Hello world") // TTS to be played back to the user .setResponseText("Hello world!") // Response text to be displayed in Assistant .build(); // Update widget with TTS appActionsWidgetExtension.updateWidget(appWidgetId); // Update widget UI appWidgetManager.updateAppWidget(appWidgetId, views); } }
Stilempfehlungen für Text-in-Sprache
Mit den folgenden Stilempfehlungen können Sie Ihr benutzerdefiniertes Widget optimieren Einführung in Sprachausgabe und angezeigte Prompts
Empfehlung | Empfohlen: | Nicht empfohlen |
---|---|---|
KontraktionenKürzungen in TTS-Prompts verwenden Ton bei Nachrichten ohne Kürzungen gestelzt und roboterhaft statt natürlich und dialogorientiert. Gesprochene Wörter wie „kann nicht“ und „Das sollten Sie nicht tun“ kann bestrafen und hart klingen. |
ResponseSpeech (TTS)Tut mir leid, ich kann keine Reservierung finden. ResponseText Tut mir leid, ich kann keine Reservierung finden. |
ResponseSpeech (TTS)Tut mir leid, ich kann keine Reservierung finden. ResponseText Tut mir leid, ich kann keine Reservierung finden. |
KommasVerwenden Sie in Listen mit drei oder mehr Elementen serielle Kommas, um Klarheit zu schaffen. Ohne das Komma können einzelne Elemente in der Liste fälschlicherweise gehört oder als Gruppen gelesen. Zum Beispiel in „Osterglocken“, und Sonnenblumen“, „Gänseblümchen und Sonnenblumen“ klingen, als kämen sie zusammen. Bei „Narzis, Gänseblümchen und Sonnenblumen“ sind alle drei eindeutig getrennt. |
ResponseSpeech (TTS)Zu den beliebtesten Pflanzen gehören gelbe Rosen, Narzissen, Gänseblümchen und Sonnenblumen. ResponseText Zu den beliebtesten Pflanzen gehören gelbe Rosen, Narzissen, Gänseblümchen und Sonnenblumen. |
ResponseSpeech (TTS)Zu den beliebtesten Pflanzen gehören gelbe Rosen, Narzissen, Gänseblümchen und Sonnenblumen. ResponseText Zu den beliebtesten Pflanzen gehören gelbe Rosen, Narzissen, Gänseblümchen und Sonnenblumen. |
ZiffernVerwenden Sie Ziffern statt Text, um visuelle Inhalte auf einen Blick zu sehen. |
ResponseSpeech (TTS)Dein Blutdruck liegt bei 100 über 80. ResponseText Dein Blutdruck beträgt 100/80. |
ResponseSpeech (TTS)Dein Blutdruck beträgt 100/80. ResponseText Dein Blutdruck beträgt einhundertachtzig. |
SymboleVerwenden Sie anstelle von Text spezielle Symbole, um visuelle Inhalte hervorzuheben. auf einen Blick. |
ResponseSpeech (TTS)Ihr letzter Kauf kostete 24,65 €. ResponseText Ihr letzter Kauf kostete 24,65 €. |
ResponseSpeech (TTS)Dein letzter Kauf kostete vierundzwanzig Euro und fünfundsechzig Cent. ResponseText Dein letzter Kauf kostete vierundzwanzig Euro und fünfundsechzig Cent. |
Weniger schöne Sachen vermeidenNettigkeiten sorgen dafür, dass die Antworten distanziert und formell wirken. Vergessen Sie sie und behalten Sie freundlich und informell sind. |
ResponseSpeech (TTS)Deine Bestellung wurde geliefert. ResponseText Deine Bestellung wurde geliefert. |
ResponseSpeech (TTS)Klar, das kann ich dir sagen. Deine Bestellung wurde geliefert. ResponseText Klar, das kann ich dir sagen. Deine Bestellung wurde geliefert. |
Vermeiden Sie Ausrufezeichen.Sie können als Schreien wahrgenommen werden. |
ResponseSpeech (TTS)Du bist heute 2,4 km gelaufen. ResponseText Du bist heute 2,4 km gelaufen. |
ResponseSpeech (TTS)Du bist heute 2,4 km gelaufen. ResponseText Du bist heute 2,4 km gelaufen. |
UhrzeitVerwenden Sie Ziffern: "5:15" statt „fünfzehn“ oder „Viertel nach fünf“. Für das 12-Stunden-Format wählen Sie AM oder PM aus. |
ResponseSpeech (TTS)Deine Lieferung sollte bis 08:15 Uhr ankommen. ResponseText Deine Lieferung sollte bis 08:15 Uhr ankommen. |
ResponseSpeech (TTS)Deine Lieferung sollte heute um 15 Minuten nach 20:00 Uhr bei dir eintreffen. ResponseText Deine Lieferung sollte heute um 15 Minuten nach 20:00 Uhr bei dir eintreffen. |
Keine MonologeSeien Sie informativ, aber halten Sie die Antworten kurz. Gehen Sie nicht in schwere Hände ohne einen klaren Vorteil für den Nutzer. |
ResponseSpeech (TTS)Im letzten Monat hast du 159 Stunden Energie verbraucht. ResponseText Im letzten Monat hast du 159 Stunden Energie verbraucht. |
ResponseSpeech (TTS)Energiesparen ist für den Planeten und die Umwelt sehr wichtig. Letzter Monat 159 Stunden Energie verbraucht. Du hast in diesem Monat 58 Stunden deines Energie. ResponseText Energiesparen ist für den Planeten und die Umwelt sehr wichtig. Letzter Monat 159 Stunden Energie verbraucht. Du hast in diesem Monat 58 Stunden deines Energie. |
Verwenden Sie kurze, einfache WörterDie einfache und verständliche Sprache spricht viele Menschen an und unterschiedlichsten Herkunft. |
ResponseSpeech (TTS)Deine letzte Blutzuckermessung lag bei 126. ResponseText Deine letzte Blutzuckermessung betrug 126 mg/dl. |
ResponseSpeech (TTS)Der vorletzte Blutzuckerspiegel lag bei 126. ResponseText Der vorletzte Blutzuckerspiegel lag bei 126. |
Launcher-Anpinnen
In der Widget-Erweiterungsbibliothek kann die Schaltfläche Dieses Widget hinzufügen angezeigt werden.
mit deinem Widget in Assistant. Füge den folgenden Empfänger hinzu, um das Anpinnen zu aktivieren
Definition für AndroidManifest.xml
:
<application>
<receiver android:name="com.google.assistant.appactions.widgets.pinappwidget.PinAppWidgetBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.google.assistant.appactions.widgets.COMPLETE_PIN_APP_WIDGET" />
</intent-filter>
</receiver>
<service
android:name=
"com.google.assistant.appactions.widgets.pinappwidget.PinAppWidgetService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action
android:name="com.google.assistant.appactions.widgets.PIN_APP_WIDGET" />
</intent-filter>
</service>
</application>
Inventarverfügbarkeit
BIIs, die Inline-Inventar oder Webinventar unterstützen, können diese zu Ihren Widget-Ausführungen hinzufügen.
Inline-Inventar
Der folgende Code aus einer shortcuts.xml
-Beispieldatei veranschaulicht,
START_EXERCISE
BII-Funktion
konfiguriert für Inline-Inventar und Widget-Auftragsausführung:
<capability
android:name="actions.intent.START_EXERCISE">
<app-widget
android:identifier="START_EXERCISE_1"
android:targetClass="com.example.exampleapp.StartExerciseAppWidgetProvider">
<parameter
android:name="exercise.name"
android:key="exerciseName"
app:shortcutMatchRequired="true">
</parameter>
</app-widget>
</capability>
<shortcut android:shortcutId="RunningShortcut">
<intent
android:action="android.intent.action.VIEW"
android:targetClass="com.example.exampleapp.StartExcerciseActivity" />
<capability-binding
android:capability="actions.intent.START_EXERCISE"
android:parameter="exercise.name"
android:value="running;runs" />
</shortcut>
Wenn im obigen Beispiel ein Nutzer diese Funktion auslöst, indem er
Assistant, „Start running with ExampleApp“, das Options-Bundle für das
Die <app-widget>
-Auftragsausführung enthält das folgende Schlüssel/Wert-Paar:
- Schlüssel =
“exerciseName”
- Wert =
“RunningShortcut”
Webinventar
Der folgende Code aus der Beispieldatei shortcuts.xml
zeigt eine Funktion,
aktiviert für Webinventar und Widget-Ausführung:
<shortcuts>
<capability
android:name="actions.intent.START_EXERCISE">
<app-widget
android:identifier="START_EXERCISE_1"
android:targetClass="com.example.exampleapp.CreateTaxiAppWidgetProvider">
<parameter
android:name="exercise.name"
android:key="exerciseName"
android:mimeType="text/*">
<data android:pathPattern="https://exampleapp.com/exercise/.*" />
</parameter>
</app-widget>
</capability>
</shortcuts>
App Actions testen
Verwenden Sie das App Actions-Testtool, eine Funktion des Google Assistant-Plug-ins für Android Studio, um Widgets auf einem physischen oder virtuellen Gerät zu testen Zur Verwendung Test-Tool verwenden, gehen Sie folgendermaßen vor:
- Verbinden Sie das Testgerät mit der laufenden App.
- Gehen Sie in Android Studio zu Tools > App Actions > App Actions-Test Tool.
- Klicken Sie auf Vorschau erstellen.
- Führen Sie Ihre App mit Android Studio auf Ihrem Testgerät aus.
- Verwende die Assistant App auf deinem Testgerät, um deine App Action zu testen. Für zum Beispiel „Hey Google, wie viele Kilometer bin ich gelaufen?“ diese Woche bei ExampleApp?“
- Beobachten Sie das Verhalten Ihrer App oder verwenden Sie den Android Studio-Debugger, um um das gewünschte Aktionsergebnis zu verifizieren.
Qualitätsrichtlinien
In diesem Abschnitt werden die wichtigsten Anforderungen und Best Practices für integrierst du App Actions in Widgets.
Inhalte in Widgets
- (Erforderlich) In Ihren Widgets dürfen keine Anzeigen eingeblendet werden.
- Der Widget-Inhalt sollte sich ganz darauf konzentrieren, die Absicht zu erfüllen. Das sollten Sie nicht tun: mit einem Widget mehrere Intents zu erreichen oder irrelevante Inhalte hinzuzufügen.
Authentifizierung verarbeiten
- (Erforderlich) Wenn die Nutzerauthentifizierung zum Abschließen eines Nutzerflusses erforderlich ist, ein Widget zurückgeben, das erklärt, dass der Nutzer mit der App fortfahren muss. Die Inline-Nutzerauthentifizierung in Google Assistant wird für die App nicht unterstützt Aktionen.
- Wenn Nutzer zulassen, dass deine App Daten mithilfe von Widgets anzeigt, kannst du eine Fehler-Widget zur Laufzeit für nicht autorisierte Nutzer.
Fallback-Intents
(Erforderlich) Geben Sie in der Datei
shortcuts.xml
immer ein Fallback an.<intent>
zusätzlich zu deiner Widget-Ausführung für ein über die gegebene Fähigkeit verfügt. Ein Fallback-Intent ist ein<intent>
-Element, für das keine<parameter>
-Werte.So kann Assistant eine Aktion ausführen, wenn Die Nutzerabfrage enthält keine Parameter, die für die andere Auftragsausführung erforderlich sind. Elemente, die in der Capability definiert sind. Hiervon ausgenommen sind keine erforderliche Parameter für diese Funktion. In diesem Fall wird nur das Widget Erfüllung ist erforderlich.
Verwenden Sie den Fallback-Intent, um den entsprechenden Bildschirm in Ihrer App zu öffnen. nicht den Startbildschirm.
Der folgende Code aus einer shortcuts.xml
-Beispieldatei veranschaulicht,
<capability>
mit einem Fallback-<intent>
, der eine primäre
Auftragsausführung in Höhe von <app-widget>
:
<shortcuts>
<capability
android:name="actions.intent.CREATE_TAXI_RESERVATION">
<!-- Widget with required parameter, specified using the "android:required" attribute. -->
<app-widget
android:identifier="CREATE_TAXI_RESERVATION_1"
android:targetClass="com.example.myapplication.CreateTaxiAppWidgetProvider">
<parameter
android:name="taxiReservation.dropoffLocation.name"
android:key="dropoff"
android:required="true">
</parameter>
</app-widget>
<!-- Fallback intent with no parameters required to successfully execute. -->
<intent
android:identifier="CREATE_TAXI_RESERVATION_3"
android:action="myapplication.intent.CREATE_TAXI_RESERVATION_1"
android:targetClass="com.example.myapplication.TaxiReservationActivity">
</intent>
</capability>
</shortcuts>
Offenlegung von Daten bei Google Play
In diesem Abschnitt werden die Endnutzerdaten aufgeführt, die von der neuesten Version des Widget-Erweiterungsbibliothek.
Dieses SDK sendet vom Entwickler bereitgestellte Sprachausgabe-Antworten, die werden dem Nutzer von Google Assistant per Spracheingabe angesagt Technologie. Diese Informationen werden nicht von Google gespeichert.
App-Aktionen können auch Metadaten von Clientanwendungen für folgende Zwecke erfassen:
- Sie können die Akzeptanzraten verschiedener SDK-Versionen überwachen.
- Bezifferung der Nutzung von SDK-Funktionen in Apps