Autofill in IMEs und Autofill-Dienste einbinden

Ab Android 11 können Tastaturen und andere Eingabemethoden-Editoren (IMEs) Autofill-Vorschläge inline, in einer Vorschlagsleiste oder Ähnliches anzeigen, anstatt Vorschläge in einem Menü anzuzeigen. Da diese AutoFill-Vorschläge private Daten wie Passwörter oder Kreditkarteninformationen enthalten können, werden die Vorschläge im IME ausgeblendet, bis der Nutzer einen auswählt. Aktualisieren Sie IMEs und Autofill-Dienste wie Passwortmanager, um diese Funktion zu nutzen. Wenn ein IME oder ein Autofill-Dienst das Inline-Autofill nicht unterstützt, werden Vorschläge wie in Versionen vor Android 11 in einem Menü angezeigt.

Workflow

In diesem Ablauf steht IME für die aktuelle Tastatur oder einen anderen Eingabeeditor und Vorschlagsanbieter für den entsprechenden Anbieter des Autofill-Vorschlags. Abhängig vom Eingabefeld und den Einstellungen des Nutzers kann der Vorschlagsanbieter die Plattform oder ein Autofill-Dienst 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, um festzustellen, ob diese das Inline-Autofill unterstützen. Wenn der IME oder der Vorschlagsanbieter keine Inline-Autofill-Funktion unterstützt, wird der Vorschlag wie unter Android 10 und niedriger in einem Menü angezeigt.

  3. Die Plattform bittet den IME um eine Anfrage für einen Vorschlag. Mit dieser Vorschlagsanfrage wird die maximale Anzahl der Vorschläge angegeben, die angezeigt werden sollen. Außerdem werden für jeden Vorschlag Präsentationsspezifikationen angegeben. In den Präsentationsspezifikationen sind Dinge wie maximale Größe, Textgröße, Farben und Schriftdaten festgelegt, sodass der Vorschlagsanbieter an das Erscheinungsbild des IME angepasst werden kann.

  4. Die Plattform bittet den Vorschlagsanbieter, die angeforderte Anzahl von Vorschlägen bereitzustellen. Jeder Vorschlag enthält einen Callback, mit dem ein View, das die UI des Vorschlags enthält, geblasen werden kann.

  5. Die Plattform informiert den IME darüber, dass Vorschläge verfügbar sind. Der IME zeigt die Vorschläge an, indem er die Callback-Methode aufruft, um die View des jeweiligen Vorschlags zu erhöhen. Zum Schutz der privaten Informationen des Nutzers kann der IME die Vorschläge in dieser Phase nicht sehen.

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

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

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

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

Ihr 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, wird die Methode InputMethodService.onCreateInlineSuggestionsRequest() Ihres IME aufgerufen. Diese Methode muss implementiert werden. Geben Sie einen InlineSuggestionsRequest mit folgenden Angaben zurück:

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

Wenn die Plattform Vorschläge enthält, wird die Methode onInlineSuggestionsResponse() Ihres IME aufgerufen und ein InlineSuggestionsResponse-Element mit den Vorschlägen übergeben. Diese Methode muss implementiert werden. Rufen Sie in Ihrer Implementierung InlineSuggestionsResponse.getInlineSuggestions() auf, um die Liste der Vorschläge abzurufen, und werten Sie dann jeden Vorschlag durch Aufrufen der zugehörigen Methode InlineSuggestion.inflate() aus.

Autofill-Dienste so konfigurieren, dass sie Inline-Autofill unterstützen

In diesem Abschnitt wird beschrieben, wie du den Autofill-Dienst so konfigurierst, dass er Inline-Autofill unterstützt. Wenn deine 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 onFillRequest() des Autofill-Dienstes auf, wie bei Versionen unter Android 11. Ihr Dienst muss jedoch die Methode getInlineSuggestionsRequest() des übergebenen FillRequest-Objekts aufrufen, um das vom IME erstellte InlineSuggestionsRequest zu erhalten. InlineSuggestionsRequest gibt an, wie viele Inline-Vorschläge erforderlich sind und wie jeder einzelne vorgeschlagen werden muss. Wenn der IME keine Inline-Vorschläge unterstützt, gibt die Methode null zurück.

Ihr Autofill-Service erstellt InlinePresentation-Objekte bis zur in InlineSuggestionsRequest angeforderten maximalen Anzahl. Für Ihre Präsentationen gelten die in InlineSuggestionsRequest angegebenen Größenbeschränkungen. Wenn Sie Ihre Vorschläge an den IME zurückgeben möchten, rufen Sie für jeden Vorschlag einmal Dataset.Builder.setValue() auf. Unter Android 11 gibt es Versionen von Dataset.Builder.setValue(), um Inline-Vorschläge zu unterstützen.