Autofill in IMEs und Autofill-Dienste einbinden

Ab Android 11 können Tastaturen und andere Eingabemethoden-Editoren (IMEs) Vorschläge für das automatische Ausfüllen inline, in einem Vorschlagsstreifen oder ähnlich anzeigen, anstatt dass das System Vorschläge in einem Menü anzeigt. Da diese Vorschläge zum automatischen Ausfüllen personenbezogene Daten wie Passwörter oder Kreditkartendaten enthalten können, werden sie der IME erst angezeigt, wenn der Nutzer einen auswählt. Aktualisieren Sie IMEs und Autofill-Dienste wie Passwortmanager, um diese Funktion nutzen zu können. Wenn ein IME oder ein Autofill-Dienst das Inline-Autofill nicht unterstützt, werden Vorschläge wie in früheren Versionen als Android 11 in einem Menü angezeigt.

Workflow

In diesem Ablauf bezeichnet IME die aktuelle Tastatur oder einen anderen Eingabeeditor und Vorschlagsanbieter den entsprechenden Anbieter des Autofill-Vorschlags. Je nach Eingabefeld und den Einstellungen des Nutzers kann der Vorschlagsanbieter die Plattform oder ein Autofill-Dienst sein.

  1. Der Nutzer legt den Fokus auf ein Eingabefeld, das das automatische Ausfüllen auslöst, z. B. ein Passwort- oder Kreditkarten-Eingabefeld.

  2. Die Plattform fragt die aktuelle IME und den entsprechenden Vorschlagsanbieter ab, um festzustellen, ob sie die Inline-Autofill-Funktion unterstützen. Wenn die IME oder der Vorschlagsanbieter die Inline-Autofill-Funktion nicht unterstützt, wird der Vorschlag in einem Menü angezeigt, ähnlich wie bei Android 10 und niedriger.

  3. Die Plattform fordert die IME auf, eine Vorschlagsanfrage zu senden. In dieser Vorschlagsanfrage wird die maximale Anzahl der anzuzeigenden Vorschläge angegeben. Außerdem enthält sie Darstellungsspezifikationen für jeden Vorschlag. Die Präsentationsspezifikationen legen unter anderem die maximale Größe, die Textgröße, Farben und Schriftdaten fest, damit der Vorschlagsanbieter das Erscheinungsbild der IME anpassen kann.

  4. Die Plattform bittet den Anbieter des Vorschlags, die angeforderte Anzahl an Vorschlägen zur Verfügung zu stellen. Jeder Vorschlag enthält einen Callback, um ein View mit der Benutzeroberfläche des Vorschlags zu erstellen.

  5. Die Plattform informiert die IME darüber, dass Vorschläge verfügbar sind. Die IME ruft die Rückrufmethode auf, um die View der einzelnen Vorschläge zu maximieren, und zeigt die Vorschläge an. Zum Schutz der privaten Daten des Nutzers sieht die IME in dieser Phase nicht, was die Vorschläge sind.

  6. Wenn der Nutzer einen der Vorschläge auswählt, wird die IME auf die gleiche Weise informiert, als würde der Nutzer einen Vorschlag aus einem Systemmenü auswählen.

In den folgenden Abschnitten wird beschrieben, wie du deinen IME oder Autofill-Dienst für die Unterstützung von Inline-Autofill konfigurieren kannst.

IMEs für die Unterstützung von Inline-Autofill konfigurieren

In diesem Abschnitt wird beschrieben, wie Sie Ihre IME so konfigurieren, dass sie das Inline-Autofill unterstützt. Wenn dein IME Inline-Autofill nicht unterstützt, zeigt die Plattform standardmäßig Autofill-Vorschläge in einem Menü an.

Dein IME muss das Attribut supportsInlinedSuggestions auf true festlegen:

<input-method
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsInlineSuggestions="true"/>

Wenn die Plattform einen Autofill-Vorschlag benötigt, ruft sie die Methode InputMethodService.onCreateInlineSuggestionsRequest() Ihrer IME auf. Sie müssen diese Methode implementieren. Gib eine InlineSuggestionsRequest zurück und gib Folgendes an:

  • Wie viele Vorschläge Ihre IME benötigt.
  • Ein InlinePresentationSpec für jeden Vorschlag, das festlegt, wie der Vorschlag präsentiert werden muss.

Wenn für die Plattform Vorschläge vorliegen, wird die onInlineSuggestionsResponse()-Methode Ihres IME aufgerufen und ein InlineSuggestionsResponse-Objekt mit den Vorschlägen übergeben. Sie müssen diese Methode implementieren. Rufen Sie in der Implementierung InlineSuggestionsResponse.getInlineSuggestions() auf, um die Liste der Vorschläge abzurufen, und blähen Sie dann jeden Vorschlag durch Aufrufen der zugehörigen Methode InlineSuggestion.inflate() auf.

Autofill-Dienste für die Unterstützung von Inline-Autofill konfigurieren

In diesem Abschnitt wird beschrieben, wie Sie Ihren Autofill-Dienst so konfigurieren, dass er das Inline-Autofill unterstützt. Wenn Ihre App die automatische Inline-Eingabe nicht unterstützt, werden die Autofill-Vorschläge standardmäßig in einem Menü angezeigt.

Ihr Autofill-Dienst muss das supportsInlinedSuggestions-Attribut auf true festlegen:

<autofill-service
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsInlineSuggestions="true"/>

Wenn die IME Autofill-Vorschläge benötigt, ruft die Plattform die Methode onFillRequest() Ihres Autofill-Dienstes auf, genau wie in Versionen unter Android 11. Ihr Dienst muss jedoch die Methode getInlineSuggestionsRequest() des übergebenen FillRequest-Objekts aufrufen, um die vom IME erstellten InlineSuggestionsRequest abzurufen. Die InlineSuggestionsRequest gibt an, wie viele Inline-Vorschläge erforderlich sind und wie jeder davon angezeigt werden muss. Wenn die IME keine Inline-Vorschläge unterstützt, gibt die Methode null zurück.

Ihr Autofill-Dienst erstellt InlinePresentation-Objekte bis zur maximalen Anzahl, die in der InlineSuggestionsRequest angefordert wurde. Ihre Präsentationen müssen den von der InlineSuggestionsRequest angegebenen Größenbeschränkungen entsprechen. Damit Ihre Vorschläge an den IME zurückgegeben werden, rufen Sie für jeden Vorschlag Dataset.Builder.setValue() auf. Unter Android 11 stehen Versionen von Dataset.Builder.setValue() zur Verfügung, die Inline-Vorschläge unterstützen.