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 Kreditkarteninformationen enthalten können, werden sie der IME erst angezeigt, wenn der Nutzer einen auswählt. Aktualisieren Sie IMEs und Autofill-Dienste wie Passwortmanager auf diese Funktion nutzen. Wenn ein IME oder ein Autofill-Dienst das Inline-Format 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 den aktuellen IME und den entsprechenden Vorschlagsanbieter ab ob die Funktion „Inline-Autofill“ unterstützt wird. 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 bittet den IME um eine Vorschlagsanfrage. Dieser Vorschlag request gibt die maximale Anzahl von Vorschlägen an, die angezeigt werden sollen, bietet Präsentationsspezifikationen für jeden Vorschlag. Die Spezifikationen der Präsentation Elemente wie maximale Größe, Textgröße, Farben und Schriftdaten festlegen, wenn der Vorschlagsanbieter dem Design des IMEs entspricht.

  4. Die Plattform bittet den Anbieter des Vorschlags, Anzahl der Vorschläge. Jeder Vorschlag enthält einen Callback, um ein View mit der Benutzeroberfläche des Vorschlags zu erstellen.

  5. Die Plattform informiert den 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 der IME keine was die Vorschläge in dieser Phase 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 Ihren IME oder den Autofill-Dienst für folgende Funktionen konfigurieren: unterstützen Inline-Autofill.

IMEs zur Unterstützung der Inline-Autofill-Funktion 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. Rückgabe eines InlineSuggestionsRequest Dazu geben Sie Folgendes an:

  • Wie viele Vorschläge Ihr IME benötigt.
  • Eine InlinePresentationSpec und legen fest, wie er präsentiert werden muss.

Wenn die Plattform Vorschläge hat, ruft sie die Methode onInlineSuggestionsResponse() Ihrer 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 den Autofill-Dienst für die Inline-Unterstützung konfigurieren Autofill. Wenn Ihre App die automatische Inline-Eingabe nicht unterstützt, werden die Autofill-Vorschläge standardmäßig in einem Menü angezeigt.

Dein Autofill-Service muss das Attribut supportsInlinedSuggestions auf true:

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

Wenn für den IME Autofill-Vorschläge erforderlich sind, ruft die Plattform Ihre Autofill-Funktion auf des Dienstes onFillRequest() genau wie bei Versionen unter Android 11. Ihr Dienst muss jedoch die Methode getInlineSuggestionsRequest() des übergebenen FillRequest-Objekts aufrufen, um den von der IME erstellten InlineSuggestionsRequest abzurufen. Die InlineSuggestionsRequest gibt an, wie viele Inline-Vorschläge erforderlich sind wie sie präsentiert werden müssen. Wenn der 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 Größenbeschränkungen entsprechen, die im InlineSuggestionsRequest Um Ihre Vorschläge an den IME zurückzugeben, rufen Sie Dataset.Builder.setValue() einmal pro Vorschlag. Android 11 bietet Versionen von Dataset.Builder.setValue() zur Unterstützung von Inline-Vorschlägen.