Google Assistant für Wear OS

Sprachassistenten ermöglichen schnelles und effizientes Arbeiten unterwegs. Spracheingabe Interaktionen auf Wearables sind dynamisch, d. h., Nutzende können mit ihrem Handgelenk, ohne auf das Gerät zu blicken, während auf eine Antwort gewartet wird.

Mit Assistant App Actions können Android-Entwickler Wear OS-Apps auf Google Assistant, um Nutzer über Sprachbefehle wie „Hey Google, starte meinen Lauf in ExampleApp.“

Beschränkungen

Assistant unter Wear unterstützt das Erfassen von Aktivitäten in Medien und Workouts. Für Eine Anleitung zur Integration von Medien-Apps in Assistant finden Sie unter Google Assistant und Medien-Apps. Die folgenden Gesundheits- und Fitness-BIIs werden unterstützt für Wear OS-Apps:

Funktionsweise

App Actions erweitern die App-Funktionen auf Assistant, sodass Nutzer auf die App zugreifen können Funktionen schnell und einfach per Sprachbefehl. Wenn ein Nutzer Assistant angibt, dass sie deine App verwenden möchten, sucht Assistant nach App Actions, die für deine App in der shortcuts.xml-Ressource der App

App Actions werden in shortcuts.xml mit Android-Funktionselementen beschrieben. Funktionselemente kombinieren integrierte Intents (BII), die semantisch sind. Beschreibungen einer App-Funktion, einschließlich Anweisungen zur Ausführung, wie z. B. Linkvorlage. Wenn Sie Ihre App über die Google Play Console hochladen, registriert die in shortcuts.xml deklarierten Funktionen und macht sie verfügbar die Nutzer über Assistant auslösen können.

App Actions-Ablauf

Das obige Diagramm zeigt einen Nutzer, der seine Übung in einem eigenständigen Gerät unterbricht. Dazu gehen Sie so vor:

  1. Der Nutzer sendet eine Sprachnachricht an Assistant für die jeweilige Wearable-App.
  2. Assistant ordnet die Anfrage einem vortrainierten Modell (BII) zu und extrahiert in der Abfrage gefundene Parameter, die vom BII unterstützt werden.
  3. In diesem Beispiel ordnet Assistant die Abfrage dem BII PAUSE_EXERCISE zu. und extrahiert den Parameter für den Trainingsnamen „Wandern“.
  4. Die App wird über die Auftragsausführung der shortcuts.xml-Funktionen ausgelöst für diesen BII.
  5. Die App verarbeitet die Ausführung und unterbricht das Training.

Konnektivität

Die Entwicklung von App Actions hängt von den Funktionen ab, die Android-Geräteplattform.

  • Tethering: Wenn eine Wearable-App zur vollständigen Nutzung der App von der mobilen App abhängig ist. können Nutzeranfragen, die über die Smartwatch an Assistant gestellt wurden, beantwortet werden auf dem Mobilgerät. Die App Actions-Ausführungslogik muss in die für dieses Szenario ordnungsgemäß funktionieren können.

  • Ohne Tethering: Wenn eine Wearable-App für funktioniert, führt Assistant Nutzeranfragen lokal auf der Smartwatch aus. App-Kampagnen Die Aktionsfunktionen müssen in die Wearable-App integriert sein, damit diese Anfragen nicht ordnungsgemäß erfüllt werden.

Sprachfunktionen zu Wear hinzufügen

So binden Sie App Actions in Ihre Wear OS-App ein:

  1. Stimmen Sie die In-App-Funktionen ab, die Sie per Sprachbefehl aktivieren möchten. einen entsprechenden BII.
  2. Unterstützung für Android-Verknüpfungen in der Hauptaktivität deklarieren AndroidManifest.xml.

    <!-- AndroidManifest.xml -->
    <meta-data
        android:name="android.app.shortcuts"
        android:resource="@xml/shortcuts" />
    
  3. Ein <intent-filter>-Element zu AndroidManifest.xml hinzufügen. Dies ermöglicht Assistant kann Deeplinks verwenden, um eine Verbindung zu den Inhalten Ihrer App herzustellen.

  4. Erstellen Sie „shortcuts.xml“, um Details zur Ausführung für Ihre BIIs anzugeben. Sie verwenden capability Verknüpfungselemente, die für Assistant die BIIs deiner App deklarieren unterstützt. Weitere Informationen finden Sie unter Funktionen hinzufügen.

  5. Implementiere in shortcuts.xml eine Funktion für den ausgewählten BII. Die Das folgende Beispiel zeigt eine Funktion für den BII START_EXERCISE:

    <?xml version="1.0" encoding="utf-8"?>
    <!-- This is a sample shortcuts.xml -->
    <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="YOUR_UNIQUE_APPLICATION_ID"
          android:targetClass="YOUR_TARGET_CLASS">
          <!-- Eg. name = "Running" -->
          <parameter
            android:name="exercise.name"
            android:key="name"/>
          <!-- Eg. duration = "PT1H" -->
          <parameter
            android:name="exercise.duration"
            android:key="duration"/>
        </intent>
      </capability>
    </shortcuts>
    
  6. Erweitern Sie gegebenenfalls die Unterstützung für Sprachvariationen von Nutzern mithilfe eines Inline-Inventar für Funktionen und Inhalte Ihrer App

    <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-bindig>
    </shortcut>
    
  7. Aktualisiere die Logik deiner App für die Verarbeitung der eingehenden App Actions-Auftragsausführung.

    //FitMainActivity.kt
    
    private fun handleIntent(data: Uri?) {
        var actionHandled = true
        val startExercise = intent?.extras?.getString(START_EXERCISE)
    
        if (startExercise != null){
            val type = FitActivity.Type.find(startExercise)
            val arguments = Bundle().apply {
                putSerializable(FitTrackingFragment.PARAM_TYPE, type)
            }
            updateView(FitTrackingFragment::class.java, arguments)
        }
        else{
            showDefaultView()
            actionHandled = false
        }
        notifyActionSuccess(actionHandled)
    }
    

App als Vorschau ansehen, testen und veröffentlichen

App Actions bieten Tools zum Prüfen und Testen deiner App. Detailliertere Informationen Weitere Informationen finden Sie unter Google Assistant-Plug-in für Android Studio. Sobald Sie Ihre App getestet und einen Testrelease erstellt haben, können Sie App Actions prüfen und bereitstellen. Lesen Sie die folgenden Best Practices für zum Umgang mit häufigen Fehlern.

Best Practices

Wenn du deine App in Assistant einbindest, kannst du so eine positive Nutzererfahrung schaffen, indem du und befolgen Sie diese empfohlenen Best Practices.

Einen entsprechenden oder relevanten Bestätigungsbildschirm mit Haptik und Audiofeedback, um auf eine Nutzeranfrage zu reagieren – entweder nach erfolgreicher um Anfragen zu beantworten oder Fehler zu melden.

Einfache Qualität Bessere Qualität Beste Qualität
  • Erstellen Sie einen Intent, um ConfirmationActivity aus einer Aktivität zu starten.
  • Erstellen Sie einen Intent, um ConfirmationActivity aus einer Aktivität zu starten.
  • Glocke und haptisches Feedback abspielen, um den aktuellen Status anzuzeigen
  • Erstellen Sie einen Intent, um ConfirmationActivity aus einer Aktivität zu starten.
  • Text-in-Sprache (TTS) und haptisches Feedback zur Meldung von Fehlern oder Erfolgen.

Häufige Fehler und Lösungen

Verwenden Sie für die folgenden Fehlerfälle die folgende empfohlene App ConfirmationActivity-Messaging.

Fehlerhafter Fall Beispiel für eine Nutzerinteraktion App-Antwort
Aktivität läuft bereits „Starte meinen Übungsnamen
„Setze meinen Übungsnamen fort.“
Anzeigefehler: Bereits laufende Aktivität.“
Keine Aktivität gestartet „Pausiere/Stopp meinen Übungsnamen Anzeigefehler: „Keine Aktivität gestartet.“
Aktivitätstypen stimmen nicht überein „Pausiere/Stopp meinen Übungsnamen“, die eine andere Übungsart als die laufende Aktivität ist. Anzeigefehler: „Aktivitätstyp stimmt nicht überein.“
Anmeldefehler „Starte meinen Übungsnamen“ Der Nutzer ist nicht in der App angemeldet. Spiel-Haptik, um den Nutzer zu warnen und zum Anmeldebildschirm weiterzuleiten.
Berechtigungsfehler Der Nutzer ist nicht berechtigt, die gewünschte Aktivität zu starten. Play-Haptik, um den Nutzer zu warnen und zum Bildschirm für Berechtigungsanfragen weiterzuleiten.
Sensorproblem Der Nutzer hat die Standortdienste in den Geräteeinstellungen deaktiviert. Haptik abspielen, um Nutzer zu warnen und einen Sensorfehlerbildschirm anzuzeigen. Optionale weitere Schritte:
<ph type="x-smartling-placeholder">
    </ph>
  • Aktivität ohne Sensortracking starten und Nutzer benachrichtigen.
  • Zum Starten der Aktivität ohne Sensor-Tracking eine Bestätigung durch den Nutzer anfordern.