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.
Der Nutzer legt den Fokus auf ein Eingabefeld, das das automatische Ausfüllen auslöst, z. B. ein Passwort- oder Kreditkarten-Eingabefeld.
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 automatische Inline-Eingabe nicht unterstützt, wird der Vorschlag in einem Menü angezeigt, ähnlich wie bei Android 10 und niedriger.
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.
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.Die Plattform informiert die 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 die IME in dieser Phase nicht, was die Vorschläge sind.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. Gib eine InlineSuggestionsRequest
zurück und gib 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()
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 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 von der InlineSuggestionsRequest
angegebenen Größenbeschränkungen entsprechen. Wenn Sie Ihre Vorschläge an die IME zurückgeben möchten, rufen Sie für jeden Vorschlag einmal Dataset.Builder.setValue()
auf. Android 11 bietet Versionen von Dataset.Builder.setValue()
, die Inline-Vorschläge unterstützen.