Ab Android 11 können Tastaturen und andere Eingabemethoden-Editoren (Input Method Editors, IMEs) Vorschläge für das automatische Ausfüllen inline, in einer Vorschlagsleiste 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 ein 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 Eingabe-Editor 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 fokussiert ein Eingabefeld, das Autofill auslöst, z. B. ein Passwort- oder Kreditkarteneingabefeld.
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 in einem Menü angezeigt, wie bei Android 10 und niedriger.
Die Plattform fordert die IME auf, eine Vorschlagsanfrage zu senden. In dieser Anfrage für Vorschläge wird die maximale Anzahl der anzuzeigenden Vorschläge angegeben. 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.
Die Plattform fordert den Vorschlagsanbieter auf, bis zur angeforderten Anzahl von Vorschlägen zu liefern. Jeder Vorschlag enthält einen Callback zum Einblenden eines
Viewmit der Benutzeroberfläche des Vorschlags.Die Plattform informiert die IME, dass Vorschläge verfügbar sind. Die IME zeigt die Vorschläge an, indem sie die Callback-Methode aufruft, um die
Viewjedes Vorschlags zu rendern. Zum Schutz der privaten Daten des Nutzers sieht die IME in dieser Phase nicht, welche Vorschläge gemacht werden.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 die Inline-Autofill-Funktion nicht unterstützt, werden 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 benötigt.
**Ein
InlinePresentationSpecfü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 Unterstützung von Inline-Autofill konfigurieren
In diesem Abschnitt wird beschrieben, wie Sie Ihren Autofill-Dienst für die Inline-Autofill-Funktion konfigurieren. Wenn Ihre App die Inline-Autofill-Funktion nicht 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 von der IME erstellte InlineSuggestionsRequest abgerufen. Die InlineSuggestionsRequest gibt an, wie viele Inline-Vorschläge erforderlich sind und wie jeder Vorschlag präsentiert werden muss. Wenn das 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. Rufen Sie Dataset.Builder.setValue() einmal für jeden Vorschlag auf, um die Vorschläge an die IME zurückzugeben. Android 11 bietet Versionen von
Dataset.Builder.setValue() zur Unterstützung von Inline-Vorschlägen.