Począwszy od Androida 11, klawiatury i inne edytory metod wprowadzania (IME) mogą wyświetlać sugestie autouzupełniania w tekście, na pasku sugestii lub do wyświetlania podobnych treści. Od te sugestie autouzupełniania mogą zawierać prywatne dane, takie jak hasła, informacji o karcie kredytowej, sugestie są ukryte w edytorze IME do momentu, wybierze jedną z nich. Zaktualizuj edytory IME i usługi autouzupełniania, np. menedżery haseł, na jak korzystać z tej funkcji. Jeśli edytor IME lub usługa autouzupełniania nie obsługuje tekstu wbudowanego autouzupełniania, sugestie są wyświetlane w menu, tak jak w wersjach starszych niż Android 11
Workflow
W tym procesie IME oznacza bieżącą klawiaturę lub inny edytor wprowadzania, a dostawca sugestii – odpowiedniego dostawcę sugestii autouzupełniania. W zależności od pola tekstowego i ustawień użytkownika dostawcą sugestii może być platforma lub usługa autouzupełniania.
Użytkownik skupia się na polu wprowadzania danych, które powoduje automatyczne wypełnianie, np. na polu wprowadzania hasła lub danych karty kredytowej.
Platforma wysyła zapytanie do bieżącego IME i odpowiedniego dostawcy sugestii aby sprawdzić, czy obsługują one autouzupełnianie. Jeśli edytor IME lub dostawca sugestii nie obsługuje autouzupełniania wbudowanego, jest wyświetlana sugestia w menu, na przykład na Androidzie 10 i starszych.
Platforma prosi IME o przesłanie żądania sugestii. Ta prośba o propozycje określa maksymalną liczbę wyświetlanych propozycji oraz zawiera specyfikacje wyświetlania dla każdej propozycji. Specyfikacje prezentacji określają takie elementy, jak maksymalny rozmiar, rozmiar tekstu, kolory i dane czcionki, umożliwiając dostawcy sugestii dopasowanie wyglądu i działania do IME.
Platforma prosi dostawcę sugestii o podanie maksymalnej liczby sugestii. Każda sugestia zawiera wywołanie zwrotne w celu zwiększenia Element
View
zawierający interfejs sugestii.Platforma informuje edytor IME, że sugestie są gotowe. Wyświetli się edytor IME. sugestii, wywołując metodę wywołania zwrotnego w celu zwiększenia liczby sugestii
View
Aby chronić prywatne informacje użytkownika, IME nie widzi. na tym etapie.Jeśli użytkownik wybierze jedną z propozycji, IME zostanie poinformowany w taki sam sposób, jak gdyby wybrał propozycję z menu systemowego.
W następnych sekcjach opisaliśmy, jak skonfigurować usługę IME lub autouzupełniania, aby obsługiwała autouzupełnianie w ramce.
Konfigurowanie edytorów IME pod kątem obsługi autouzupełniania w tekście
Z tej sekcji dowiesz się, jak skonfigurować edytor IME pod kątem obsługi autouzupełniania wbudowanego. Jeśli IME nie obsługuje autouzupełniania w tekście, platforma domyślnie wyświetla sugestie autouzupełniania w menu.
Twój edytor IME musi ustawić atrybut supportsInlinedSuggestions
na
true
:
<input-method
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsInlineSuggestions="true"/>
Gdy platforma potrzebuje sugestii autouzupełniania, wywołuje edytor IME.
InputMethodService.onCreateInlineSuggestionsRequest()
. Musisz wdrożyć tę metodę. Zwrot
InlineSuggestionsRequest
określając następujące elementy:
- Liczba sugestii, które chce uzyskać edytor IME.
InlinePresentationSpec
w przypadku każdej sugestii, określający sposób jej wyświetlania.
Gdy platforma ma sugestie, wywołuje edytor IME.
onInlineSuggestionsResponse()
, który wymaga przesłania
InlineSuggestionsResponse
zawierający sugestie. Musisz zaimplementować tę metodę. W
wdrożenie, wywołanie
InlineSuggestionsResponse.getInlineSuggestions()
aby uzyskać listę sugestii, a następnie rozwijaj każdą z nich, wywołując
InlineSuggestion.inflate()
.
Konfigurowanie usług autouzupełniania pod kątem obsługi autouzupełniania wbudowanego
W tej sekcji opisaliśmy, jak skonfigurować usługę autouzupełniania, aby obsługiwała autouzupełnianie w ramce. Jeśli aplikacja nie obsługuje automatycznego wypełniania w polu, domyślnie wyświetla sugestie automatycznego wypełniania w menu.
Usługa autouzupełniania musi ustawić atrybut supportsInlinedSuggestions
na true
:
<autofill-service
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsInlineSuggestions="true"/>
Gdy edytor IME potrzebuje sugestii autouzupełniania, platforma wywołuje autouzupełnianie
usługi
onFillRequest()
tak samo jak w wersjach Androida starszych niż 11. Jednak Twoja usługa musi wywołać metodę getInlineSuggestionsRequest()
przekazanego obiektu FillRequest
, aby uzyskać obiekt InlineSuggestionsRequest
utworzony przez IME.
InlineSuggestionsRequest
określa liczbę potrzebnych sugestii w tekście.
jak każda z nich powinna być prezentowana. Jeśli edytor IME nie obsługuje sugestii wbudowanych,
metoda zwraca null
.
Usługa autouzupełniania tworzy InlinePresentation
obiekty, aż do maksymalnej liczby określonej w InlineSuggestionsRequest
.
Prezentacje muszą spełniać ograniczenia dotyczące rozmiaru określone przez InlineSuggestionsRequest
. Aby zwrócić sugestie do IME, wywołaj funkcję Dataset.Builder.setValue()
raz dla każdej sugestii. Android 11 udostępnia wersje
Dataset.Builder.setValue()
, aby obsługiwać wbudowane sugestie.