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 eine IME oder ein Autofill-Dienst die Inline-Autofill-Funktion nicht unterstützt, werden Vorschläge in einem Menü angezeigt, wie in Versionen vor Android 11.

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 von Vorschlägen, bis zu der angeforderten Anzahl von Vorschlägen bereitzustellen. Jeder Vorschlag enthält einen Callback, um ein View mit der Benutzeroberfläche des Vorschlags zu laden.

  5. Die Plattform informiert die IME darüber, dass Vorschläge verfügbar sind. Die IME ruft die Rückrufmethode auf, um die View jedes Vorschlags 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 Sie Ihre IME oder Ihren Autofill-Dienst so konfigurieren, dass die Inline-Autofill-Funktion unterstützt wird.

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 Ihre IME die automatische Inline-Eingabe nicht unterstützt, werden auf der Plattform standardmäßig Vorschläge zur automatischen Eingabe in einem Menü angezeigt.

Ihre Eingabemethode muss das supportsInlinedSuggestions-Attribut 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. Geben Sie eine InlineSuggestionsRequest zurück und geben Sie 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 die Plattform Vorschläge hat, ruft sie die Methode onInlineSuggestionsResponse() der IME auf und übergibt einen InlineSuggestionsResponse mit den Vorschlägen. Sie müssen diese Methode implementieren. Rufen Sie in Ihrer Implementierung die Methode InlineSuggestionsResponse.getInlineSuggestions() auf, um die Liste der Vorschläge abzurufen, und maximieren Sie dann jeden Vorschlag, indem Sie die Methode InlineSuggestion.inflate() aufrufen.

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 den von der IME erstellten InlineSuggestionsRequest abzurufen. Mit InlineSuggestionsRequest wird angegeben, wie viele Inline-Vorschläge erforderlich sind und wie sie präsentiert werden sollen. 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 vom InlineSuggestionsRequest angegebenen Größenbeschränkungen entsprechen. Wenn Sie Ihre Vorschläge an die IME zurückgeben möchten, rufen Sie Dataset.Builder.setValue() einmal für jeden Vorschlag auf. Android 11 bietet Versionen von Dataset.Builder.setValue(), die Inline-Vorschläge unterstützen.