Autofill in IMEs und Autofill-Dienste einbinden

Ab Android 11 können Tastaturen und andere Eingabemethoden-Editoren (IMEs) Autofill-Vorschläge inline, in einer Leiste mit Vorschlägen oder auf ähnliche Weise anzeigen, anstatt dass das System Vorschläge in einem Menü anzeigt. Da diese Autofill-Vorschläge private Daten wie Passwörter oder Kreditkarteninformationen enthalten können, werden sie für den IME ausgeblendet, bis der Nutzer einen Vorschlag auswählt. Aktualisieren Sie IMEs und Autofill-Dienste wie Passwortmanager, um diese Funktion zu nutzen. Wenn ein IME oder ein Autofill-Service Inline-Autofill nicht unterstützt, werden Vorschläge in einem Menü angezeigt, wie in Versionen vor Android 11.

Workflow

In diesem Ablauf steht IME für die aktuelle Tastatur oder einen anderen Eingabe-Editor und Vorschlagsanbieter für den entsprechenden Anbieter des Autofill-Vorschlags. Je nach Eingabefeld und Einstellungen des Nutzers kann der Vorschlagsanbieter die Plattform oder ein Autofill-Service sein.

  1. Der Nutzer konzentriert sich auf ein Eingabefeld, das Autofill auslöst, z. B. ein Passwort- oder Kreditkarteneingabefeld.

  2. Die Plattform fragt den aktuellen IME und den entsprechenden Vorschlagsanbieter ab, ob sie Inline-Autofill unterstützen. Wenn der IME oder der Vorschlagsanbieter Inline-Autofill nicht unterstützt, wird der Vorschlag in einem Menü angezeigt, wie unter Android 10 und niedriger.

  3. Die Plattform fordert den IME auf, eine Vorschlagsanfrage zu senden. In dieser Vorschlagsanfrage wird die maximale Anzahl der anzuzeigenden Vorschläge angegeben und es werden Präsentationsspezifikationen für jeden Vorschlag bereitgestellt. Die Präsentationsspezifikationen geben beispielsweise die maximale Größe, Textgröße, Farben und Schriftartdaten an, damit der Vorschlagsanbieter das Erscheinungsbild des IME anpassen kann.

  4. Die Plattform fordert den Vorschlagsanbieter auf, bis zu der angeforderten Anzahl von Vorschlägen zu senden. Jeder Vorschlag enthält einen Callback, um eine View mit der UI des Vorschlags zu erweitern.

  5. Die Plattform informiert den IME, dass Vorschläge verfügbar sind. Der IME zeigt die Vorschläge an, indem er die Callback-Methode aufruft, um die View jedes Vorschlags zu erweitern. Um die privaten Daten des Nutzers zu schützen, sieht der IME in dieser Phase nicht, was die Vorschläge sind.

  6. Wenn der Nutzer einen der Vorschläge auswählt, wird der IME auf dieselbe Weise informiert, als wenn der Nutzer einen Vorschlag aus einem Systemmenü auswählt.

In den folgenden Abschnitten wird beschrieben, wie Sie Ihren IME oder Autofill-Service so konfigurieren, dass Inline-Autofill unterstützt wird.

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

In diesem Abschnitt wird beschrieben, wie Sie Ihren IME so konfigurieren, dass Inline-Autofill unterstützt wird. Wenn Ihr IME Inline-Autofill nicht unterstützt, werden Autofill-Vorschläge standardmäßig in einem Menü angezeigt.

Ihr IME muss das Attribut supportsInlinedSuggestions auf true setzen:

<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 Ihres IME auf. InputMethodService.onCreateInlineSuggestionsRequest() Sie müssen diese Methode implementieren. Geben Sie eine InlineSuggestionsRequest zurück, in der Folgendes angegeben ist:

  • Die Anzahl der Vorschläge , die Ihr IME benötigt.
  • **Ein InlinePresentationSpec für jeden Vorschlag, das definiert, wie der Vorschlag präsentiert werden muss.

Wenn die Plattform Vorschläge hat, ruft sie die Methode Ihres IME onInlineSuggestionsResponse() auf und übergibt eine InlineSuggestionsResponse mit den Vorschlägen. Sie müssen diese Methode implementieren. Rufen Sie in Ihrer Implementierung InlineSuggestionsResponse.getInlineSuggestions() auf, um die Liste der Vorschläge abzurufen, und erweitern 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-Service so konfigurieren, dass Inline-Autofill unterstützt wird. Wenn Ihre App Inline-Autofill nicht unterstützt, werden die Autofill-Vorschläge der Plattform standardmäßig in einem Menü angezeigt.

Ihr Autofill-Service muss das Attribut supportsInlinedSuggestions auf true setzen:

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

Wenn der IME Autofill-Vorschläge benötigt, ruft die Plattform die Methode Ihres Autofill Dienstes onFillRequest() auf, genau wie in Versionen vor Android 11. Ihr Dienst muss jedoch die Methode getInlineSuggestionsRequest() des übergebenen FillRequest Objekts aufrufen. Dadurch wird die vom IME erstellte InlineSuggestionsRequest abgerufen. In der InlineSuggestionsRequest wird angegeben, wie viele Inline-Vorschläge benötigt werden und wie jeder Vorschlag präsentiert werden muss. 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 die in der InlineSuggestionsRequest angegebenen Größenbeschränkungen einhalten. Wenn Sie Ihre Vorschläge an den IME zurückgeben möchten, rufen Sie Dataset.Builder.setValue() einmal für jeden Vorschlag auf. Android 11 bietet Versionen von Dataset.Builder.setValue() zur Unterstützung von Inline-Vorschlägen.