Autofill in IMEs und Autofill-Dienste einbinden

Ab Android 11 können Tastaturen und andere Eingabemethoden-Editoren (Input Method Editors, IMEs) Vorschläge für das automatische Ausfüllen inline, in einem Vorschlagsstreifen oder auf ähnliche Weise anzeigen, anstatt dass das System Vorschläge in einem Menü anzeigt. Da diese Vorschläge zur automatischen Vervollständigung private Daten wie Passwörter oder Kreditkarteninformationen enthalten können, werden sie vor der IME verborgen, bis der Nutzer einen Vorschlag auswählt. Aktualisieren Sie IMEs und Autofill-Dienste wie Passwortmanager, um diese Funktion nutzen zu können. Wenn eine IME oder ein Dienst für automatisches Ausfüllen das Inline-Autofill nicht unterstützt, werden Vorschläge in einem Menü angezeigt, wie in Versionen vor Android 11.

Workflow

In diesem Ablauf bedeutet 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 fokussiert 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 sie Inline-Autofill unterstützen. Wenn entweder die IME oder der Vorschlagsanbieter die Inline-Autofill-Funktion nicht unterstützt, wird der Vorschlag wie unter Android 10 und niedriger in einem Menü angezeigt.

  3. Die Plattform fordert die IME auf, eine Vorschlagsanfrage zu senden. In dieser Anfrage für Vorschläge wird die maximale Anzahl der Vorschläge angegeben, die angezeigt werden sollen. Außerdem werden Präsentationsspezifikationen für jeden Vorschlag bereitgestellt. Die Präsentationsspezifikationen geben Dinge wie maximale Größe, Textgröße, Farben und Schriftartdaten an, sodass der Vorschlagsanbieter das Erscheinungsbild der IME anpassen kann.

  4. Die Plattform fordert den Vorschlagsanbieter auf, bis zu der angeforderten Anzahl von Vorschlägen bereitzustellen. Jeder Vorschlag enthält einen Callback zum Einblenden eines View mit der Benutzeroberfläche des Vorschlags.

  5. Die Plattform informiert die IME, dass Vorschläge bereit sind. Die IME zeigt die Vorschläge an, indem sie die Callback-Methode aufruft, um die View jedes Vorschlags zu rendern. Zum Schutz der privaten Daten des Nutzers sieht die IME in dieser Phase nicht, welche Vorschläge angezeigt werden.

  6. Wenn der Nutzer einen der Vorschläge auswählt, wird die 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-Dienst für die Unterstützung von Inline-Autofill konfigurieren.

IMEs für die Inline-Autofill-Funktion konfigurieren

In diesem Abschnitt wird beschrieben, wie Sie Ihre IME für die Inline-Autofill-Funktion konfigurieren. Wenn Ihre IME-App kein Inline-Autofill unterstützt, werden die Autofill-Vorschläge standardmäßig in einem Menü angezeigt.

Ihre 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 Vorschlag zum automatischen Ausfüllen benötigt, ruft sie die Methode InputMethodService.onCreateInlineSuggestionsRequest() Ihres IME auf. Sie müssen diese Methode implementieren. Geben Sie ein InlineSuggestionsRequest mit den folgenden Angaben zurück:

  • Die Anzahl der Vorschläge, die Ihre IME-App liefern soll.
  • **Ein InlinePresentationSpec für jeden Vorschlag, der definiert, wie der Vorschlag präsentiert werden muss.

Wenn die Plattform Vorschläge hat, ruft sie die Methode onInlineSuggestionsResponse() Ihres IME auf und übergibt ein 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 blenden Sie dann jeden Vorschlag ein, indem Sie seine Methode InlineSuggestion.inflate() aufrufen.

Autofill-Dienste für die Inline-Autofill-Funktion konfigurieren

In diesem Abschnitt wird beschrieben, wie Sie Ihren Autofill-Dienst für die Inline-Autofill-Funktion konfigurieren. Wenn Ihre App kein Inline-Autofill unterstützt, werden die Autofill-Vorschläge der Plattform standardmäßig in einem Menü angezeigt.

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

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

Wenn das IME Vorschläge zum automatischen Ausfüllen benötigt, ruft die Plattform die onFillRequest()-Methode Ihres Dienstes zum automatischen Ausfüllen auf, genau wie in Versionen vor Android 11. Ihr Dienst muss jedoch die Methode getInlineSuggestionsRequest() des übergebenen FillRequest-Objekts aufrufen. Dadurch wird das vom IME erstellte InlineSuggestionsRequest abgerufen. Im InlineSuggestionsRequest wird angegeben, wie viele Inline-Vorschläge benötigt werden und wie jeder Vorschlag präsentiert 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 InlineSuggestionsRequest angefordert wurde. Ihre Präsentationen müssen die von InlineSuggestionsRequest angegebenen Größenbeschränkungen einhalten. Um Ihre Vorschläge an die IME zurückzugeben, 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.