App-Aufruf im Vordergrund

Mit App Actions können Nutzer mit Google Assistant sprechen und direkt bestimmte App-Ziele zu erreichen, wenn sie zum Beispiel sagen: „Hey Google, bestell mir eine Fahrt mit Beispiel-App.“ Mit dem Aufruf einer App im Vordergrund können Sie wenn Nutzende Ihre App bereits geöffnet haben.

Beim Aufruf einer App im Vordergrund können integrierte Intents (BIIs) abgeglichen werden, ohne Der App-Name muss erwähnt werden, während eine bestimmte Aktivität in der im Vordergrund des Geräts.

Beispiel: Ein Nutzer hat Ihre Mitfahrdienst-App im Vordergrund geöffnet und sagt oder tippt, „Bestell mir eine Fahrt nach Mountain View“ zu Google Assistant. Deine App verwendet diese um das Feld „Ziel“ auf „Mountain View“ zu setzen. Wenn Nutzende dann sagen oder , „Bestelle mir eine Fahrt von SFO“, kann deine App die Abholung einstellen ohne den Zustand der App zu verändern.

Beschränkungen

Der Aufruf einer App im Vordergrund ist nur für die folgenden BIIs verfügbar:

Um Unterstützung für Sprachen und Beispielabfragen in Bezug auf den Aufruf einer App im Vordergrund zu erhalten Informationen zu einem bestimmten BII finden Sie in der Referenz zu integrierten Intents.

Aufruf von Apps im Vordergrund unterstützen

Damit der Aufruf von Apps im Vordergrund unterstützt wird, muss die Auftragsausführung hinzugefügt werden. basierend auf einer gewünschten Aktivität im Vordergrund. Wenn diese Aktivität in der Vordergrund und die App Action wird aufgerufen, übergibt Assistant den Deeplink-Intent. mit einer zusätzlichen Markierung für diese Aktivität, damit Ihre App ihren Status aktualisieren kann.

So implementieren Sie den Aufruf einer App im Vordergrund für einen BII:

  1. Füge in der Datei shortcuts.xml dem BII ein <intent>-Tag hinzu <capability>: Sie möchten den Aufruf von Apps im Vordergrund unterstützen.
  2. Fügen Sie im <intent>-Tag ein <extra>-Tag hinzu.
  3. Legen Sie im <extra>-Tag android:key auf "requiredForegroundActivity" fest. und legen Sie android:value auf die Aktivität fest, im Vordergrund. Aktivität ohne Kurs angeben mit dem Namen des App-Pakets, gefolgt von einem Schrägstrich (/), gefolgt vom Namen der Aktivität: APP_PACKAGE_NAME/ACTIVITY_NAME
  4. Bei der Aktivität im Vordergrund, die Sie für "requiredForegroundActivity" angegeben haben, die Methode onNewIntent() implementieren, um einen Deeplink-Intent mit SINGLE_TOP-Flag festgelegt. Assistant übergibt den Deeplink-Intent an Flag als Auftragsausführung kennzeichnen, wenn die angegebene Aktivität im Vordergrund ausgeführt wird.
  5. Anrufe an onNewIntent() werden als Updates zu deinen Aktivitäten im Vordergrund behandelt und den Status dieser Aktivität mithilfe von Parametern verwalten, die aus dem Deeplink extrahiert wurden.

Wenn Ihre App eine Routeraktivität verwendet, damit alle externen Deeplinks eine die Aktivität eines einzelnen Gatekeeping-Routers, siehe Routeraktivitäten verarbeiten

Beispiel

Das folgende Snippet aus einer shortcuts.xml-Beispieldatei zeigt, wie der Attribut requiredForegroundActivity:

  <capability name="actions.intent.CREATE_TAXI_RESERVATION">
      <!-- Trigger with foreground app invocation if MainActivity is in the foreground. -->
      <intent
          android:targetClass="com.example.app.MainActivity"
          android:targetPackage="com.example.app">
          <parameter
              android:name="taxiReservation.dropoffLocation.name"
              android:key="dropoff" />
          <extra
              android:key="requiredForegroundActivity"
              android:value="com.example.app/com.example.app.MainActivity" />
      </intent>
      <!-- This won't trigger if MainActivity is in the foreground. -->
      <intent
          android:targetClass="com.example.app.MainActivity"
          android:targetPackage="com.example.app">
          <parameter
              android:name="taxiReservation.dropoffLocation.name"
              android:key="dropoff" />
      </intent>
  </capability>

Nutzerberechtigungen

Nutzer müssen in den Geräteeinstellungen die Option „Text auf Bildschirm verwenden“ aktivieren
            damit der Aufruf einer App im Vordergrund funktioniert.

Damit der Aufruf einer App im Vordergrund für einen Nutzer funktioniert, muss der Nutzer die Geräteeinstellung Text auf Bildschirm verwenden aktiviert. Den Standort und den genauen Namen kann je nach OEM oder Gerätehersteller variieren. Zum Beispiel Die Geräteeinstellung des Nutzers kann stattdessen auch als Bildschirmkontext verwenden bezeichnet werden. .

Um diese Android-Einstellung auf einem Pixel zu öffnen, rufen Sie zuerst Einstellungen > Apps und Benachrichtigungen > Standard-Apps > Assistent-App. Dann können Sie über den Assistenten Eingabebildschirm, aktiviere die Option Text auf Bildschirm verwenden.

Aufruf testen

So testen Sie den Aufruf einer App im Vordergrund:

  1. Folgen Sie der Anleitung im Abschnitt Nutzerberechtigungen, um die Geräteeinstellung Text auf Bildschirm verwenden.
  2. Öffnen Sie in Ihrer App die Aktivität, die Sie als erforderliche Vordergrundaktivität angegeben haben.
  3. Drücken und Startbildschirmtaste gedrückt halten, um Assistant als Overlay auf der aktuellen Geben Sie eine Abfrage an, die dem von Ihnen implementierten BII entspricht ohne den Namen der App zu nennen. Ist dies erfolgreich, wird Ihre App aktualisiert. basierend auf Ihrer Abfrage unter Beibehaltung des Zustands und ohne Neustart der Aktivität.

Routeraktivitäten verarbeiten

Einige Apps verarbeiten alle externen Deeplinks mit einem einzigen Gatekeeping-Router. Aktivitäten. Die Routeraktivität startet dann die entsprechende Geschäftslogik. Aktivität (nach etwaigen Überprüfungen und Validierungen) und gibt die Geschäftslogik zurück. in den Vordergrund zu stellen.

Wenn ein Deeplink ausgelöst wird, wird die Routeraktivität im oberen Bereich über der Vordergrundaktivität platzieren. Für Apps, die einen Router verwenden Aktivität senden, müssen Sie darauf achten, dass die Routeraktivität den Intent sendet, von Google Assistant auf die aktuelle Instanz der Aktivität im Vordergrund übertragen. So erreichen Sie Je nachdem, wo die Router-Aktivität beginnt, ändert sich diese Anforderung.

Wenn Ihr Router im selben Aufgabenstapel beginnt wie Ihre Geschäftslogikaktivität, Intent mit dem bitweisen ODER von SINGLE_TOP, CLEAR_TOP, und NEW_TASK:

Kotlin

Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK

Java

Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK

Router startet in einem anderen Aufgabenstapel als Ihre Geschäftslogik Aktivität, leiten Sie den Intent mit dem Flag SINGLE_TOP an das Unternehmen weiter. die logische Aktivität.