Wenn du die Funktionen deiner App bewerben und die Nutzung vereinfachen möchtest, kannst du deinen Nutzern Assistant-Kurzbefehle vorschlagen. Assistant-Kurzbefehle sind kurze Sätze, die ein Nutzer sagen kann, um Funktionen in deiner App auszulösen.
Assistant-Kurzbefehle können zwar manuell von Nutzern erstellt werden, mit dem In-App Promo SDK kannst du Assistant-Kurzbefehle jedoch proaktiv vorschlagen und implementieren. Wenn du Verknüpfungen vorschlägst, bietest du deinen Nutzern klare, einfache Möglichkeiten, zu ihren Lieblingsaktivitäten in deiner App zurückzukehren, ohne dass sie die Verknüpfungen selbst einrichten müssen.
Wenn ein Nutzer beispielsweise in deiner Musik-App nach „Heavy Metal Workout“ sucht, kannst du ihm in Zukunft einen Assistant-Kurzbefehl direkt zu diesen Suchergebnissen vorschlagen. Wenn du einen Kurzbefehl vorschlägst, wird in deiner App eine Aufforderung angezeigt, die den vorgeschlagenen Ausdruck für den Kurzbefehl enthält und den Nutzer fragt, ob der Kurzbefehl erstellt werden kann.
In diesem Beispiel schlagen Sie die Wortgruppe „Starte mein Heavy-Metal-Workout“ vor. Der Nutzer akzeptiert den Vorschlag und kann die Verknüpfung dann mit „Hey Google, starte mein Heavy-Metal-Workout“ starten.
Weitere Informationen dazu, wie Sie die Zielgruppe Ihrer App vergrößern können, finden Sie unter App mit App-Aktionen ausbauen.
Das In-App Promo SDK bietet die folgenden Methoden:
lookupShortcut: prüft, ob die Verknüpfung, die Sie vorschlagen möchten, bereits vorhanden ist. Die Methode prüft auch, ob Probleme vorliegen, die das Erstellen der Verknüpfung verhindern. Wenn die Verknüpfung nicht erstellt werden kann, gibtlookupShortcutdie Gründe dafür zurück.createShortcutSuggestionIntent: gibt einen Intent zurück, mit dem du den Nutzer auffordern kannst, die vorgeschlagene Verknüpfung zu erstellen.createShortcutSettingsIntent: gibt einen Intent zurück, mit dem Sie den Nutzer zu den Einstellungen für Assistant-Kurzbefehle für Ihre App weiterleiten können.
Voraussetzungen und Einschränkungen
In diesem Abschnitt werden die Voraussetzungen und Anforderungen für die Verwendung von Vorschlägen sowie die Einschränkungen beschrieben, die auftreten können.
Voraussetzungen für die Entwicklung
Damit Sie Vorschläge verwenden können, muss Ihre Entwicklungsumgebung die folgenden Voraussetzungen erfüllen.
Erweitern Sie Ihre Android-App, um App Actions zu verwenden.
Fügen Sie
com.google.android.googlequicksearchboxin das<queries>-Tag in Ihrem Manifest ein. Beispiel:<manifest ...> <queries> <package android:name="com.google.android.googlequicksearchbox" /> </queries> ... </manifest>Verwenden Sie Android App Bundles, um Ihre Apps zu veröffentlichen.
Geräteanforderungen
Wenn Sie Ihre Vorschläge auf einem Gerät testen möchten, muss Folgendes auf dem Gerät installiert sein:
Die aktuelle Version der Google App
Android 6.0 (API-Level 23) oder höher
Bekannte Einschränkungen
Vorschläge werden nur auf Englisch unterstützt. Damit Nutzer Ihre Vorschläge sehen können, müssen sie die Assistant-Sprache auf ihrem Gerät auf Englisch festlegen.
Vorschläge umsetzen
Wenn Sie Vorschläge implementieren möchten, müssen Sie die Datei build.gradle aktualisieren, den Vorschlagsclient einrichten und dann die Vorschläge definieren, die Sie Nutzern machen möchten.
Fügen Sie der Datei
build.gradledie Bibliotheksabhängigkeit hinzu.dependencies { ... implementation "com.google.assistant.appactions:suggestions:1.0.0" }Definieren Sie eine Instanz von
AssistantShortcutSuggestionsClient.Kotlin
val shortcutsClient = AssistantShortcutSuggestionsClient.builder() .setContext(CONTEXT: Context) .setVerifyIntents(VERIFY_INTENTS: Boolean) .setCustomExecutor(CUSTOM_EXECUTOR: Object) .build()
Java
AssistantShortcutSuggestionsClient shortcutsClient = AssistantShortcutSuggestionsClient.builder() .setContext(CONTEXT: Context) .setVerifyIntents(VERIFY_INTENTS: Boolean) .setCustomExecutor(CUSTOM_EXECUTOR: Object) .build();
In diesem Fall gilt Folgendes:
CONTEXT(erforderlich) ist der Anwendungskontext.VERIFY_INTENTS(erforderlich) bestimmt, ob jeder Intent überprüft werden soll, der beim Vorschlagen von Kurzbefehlen für Nutzer erstellt wird. Wenntrue, werden die vonAssistantShortcutSuggestionsClienterstellten Intents überprüft. Wenn ein Intent ungültig ist, wird eine Ausnahme zurückgegeben.CUSTOM_EXECUTOR(optional) ist ein benutzerdefinierter Executor zum Ausführen asynchroner Aufgaben. Wenn nichts angegeben ist, verwendet das SDK einen Single-Thread-Executor für die Aufgabe.
Mit der Methode
lookupShortcutkannst du feststellen, ob die Verknüpfung, die du vorschlagen möchtest, gültig ist und ob sie bereits vorhanden ist.Erstellen Sie einen Intent für eine App-Verknüpfung. Der Shortcut-Intent stellt die Verknüpfung dar, die Sie einem Nutzer vorschlagen möchten. Im folgenden Beispiel wird ein Intent für eine Verknüpfung zum Starten eines Trainings erstellt.
Kotlin
val exercise = mapOf( "@type" to "Exercise", "@context" to "http://schema.googleapis.com", "name" to "Running", ) val appShortcutIntent = AppShortcutIntent.builder() .setIntentName("actions.intent.START_EXERCISE") .setPackageName("my.app.package") .setIntentParamName("exercise") .setIntentParamValue(exercise) .build()
Java
Map<String, Object> exercise = new HashMap<>(); exercise.put("@type", "Exercise"); menuItem.put("@context", "http://schema.googleapis.com"); menuItem.put("name", "Running"); AppShortcutIntent appShortcutIntent = AppShortcutIntent.builder() .setIntentName("actions.intent.START_EXERCISE") .setPackageName("my.app.package") .setIntentParamName("exercise") .setIntentParamValue(exercise) .build();
Übergeben Sie den Shortcut-Intent an die Methode
lookupShortcut.Kotlin
val result = shortcutsClient.lookupShortcut(appShortcutIntent).await() if (!result.isShortcutPresent) { // App can suggest creating a shortcut } else { // App can remind the user that they have a shortcut for this app action }
Java
shortcutsClient.lookupShortcut(appShortcutIntent) .addOnSuccessListener(shortcutLookupResult -> { if (!shortcutLookupResult.isShortcutPresent()) { // App can suggest creating a shortcut } else { // App can remind the user that they have a shortcut for this app action } }) .addOnFailureListener(e -> Log.e(TAG, "Shortcut lookup failed", e));
Erstellen Sie den Vorschlag mit dem Intent für die Verknüpfung. Es gibt zwei Methoden, mit denen Sie einen Vorschlag erstellen können:
createShortcutSuggestionIntent: Gibt einen Android-Intent zurück, mit dem Sie die Aktivität für Kurzbefehl-Vorschläge im Kontext Ihrer App starten.Kotlin
val exerciseShortcut = AppShortcutSuggestion.builder() .setAppShortcutIntent(appShortcutIntent) .setCommand(PHRASE: String) .build() val intent = shortcutsClient.createShortcutSuggestionIntent(exerciseShortcut).await() application.startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
Java
AppShortcutSuggestion exerciseShortcut = AppShortcutSuggestion.builder() .setAppShortcutIntent(appShortcutIntent) .setCommand(PHRASE: String) .build(); shortcutsClient.createShortcutSuggestionIntent(exerciseShortcut) .addOnSuccessListener(intent -> getApplication().startActivity( intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); ) .addOnFailureListener(e -> Log.e(TAG, "Failed to get shortcut suggestion intent", e); );
In diesem Beispiel ist PHRASE die Äußerung, die Sie dem Nutzer als Kurzbefehl vorschlagen möchten. Wenn Sie beispielsweise möchten, dass der Nutzer „Hey Google, starte einen Lauf“ als Kurzbefehl sagt, ersetzen Sie PHRASE durch
"start a run".Kotlin
val exerciseShortcut = AppShortcutSuggestion.builder() .setAppShortcutIntent(appShortcutIntent) .setCommand("start a run") .build()
Java
AppShortcutSuggestion exerciseShortcut = AppShortcutSuggestion.builder() .setAppShortcutIntent(appShortcutIntent) .setCommand("start a run") .build();
createShortcutSettingsIntent: Gibt einen Android-Intent zurück, der den Nutzer zur Oberfläche für die Kurzbefehl-Einstellungen in der Assistant App weiterleitet.Kotlin
val intent = shortcutsClient.createShortcutSettingsIntent().await() application.startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
Java
shortcutsClient.createShortcutSettingsIntent() .addOnSuccessListener(intent -> getApplication().startActivity( intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); ) .addOnFailureListener(e -> Log.e(TAG, "Failed to get shortcut settings intent", e); );
Rufen Sie
startActivitymit dem Android-Intent auf, der im vorherigen Schritt zurückgegeben wurde.
Vorschläge zur Fehlerbehebung
In diesem Abschnitt werden Probleme und Ausnahmen aufgeführt, die beim Vorschlagen von Kurzbefehlen auftreten können.
„GoogleInstallationUnsupportedException: Cannot bind to service“
Aufgrund der
Filterung der Paketsichtbarkeit kann unter
Android 11 und höher die Meldung
„GoogleInstallationUnsupportedException: Cannot bind to service“ (: Bindung an Dienst nicht möglich) angezeigt werden. Achten Sie darauf, dass com.google.android.googlequicksearchbox im <queries>-Tag in Ihrem Manifest enthalten ist:
<manifest ...>
<queries>
<package android:name="com.google.android.googlequicksearchbox" />
</queries>
...
</manifest>
„Die APK-Signatur konnte nicht bestätigt werden“
Der folgende Fehler kann auftreten, wenn Sie Ihre Produktions-App nicht als App-Bundle einreichen:
Failed to verify the APK signature. If this is a development build, please
make sure to update the preview of your app in App Actions Test Tool.
Reichen Sie Ihre App als Android App Bundle ein.
„Nutzer-Kurzbefehle konnten nicht abgerufen werden“
Die Fehlermeldung „Failed to get user shortcuts“ (Nutzerverknüpfungen konnten nicht abgerufen werden) kann angezeigt werden, wenn Sie dem Gerät vor Kurzem ein Konto hinzugefügt haben und die Verknüpfungsdaten des neuen Kontos noch nicht auf dem Gerät im Cache gespeichert sind.
Wenn du die Kurzbefehldaten auf dem Gerät synchronisieren möchtest, füge über die Oberfläche der Assistant App einen Assistant-Kurzbefehl hinzu oder lösche ihn.
Die Aktivität zum Erstellen von Verknüpfungen wird sofort geschlossen, ohne dass Inhalte angezeigt werden
Die Aktivität zum Erstellen von Verknüpfungen kann geschlossen werden, ohne dass Inhalte angezeigt werden, wenn Sie keine Vorschau mit dem App Actions-Testtool erstellen oder die Vorschau abläuft. Aktualisieren Sie die Vorschau und versuchen Sie es noch einmal.