A partire da Android 11, le tastiere e altri editor di metodi di inserimento (IME) possono mostrare i suggerimenti di compilazione automatica in linea, in una barra dei suggerimenti o in modo simile, anziché mostrare i suggerimenti in un menu. Poiché questi suggerimenti di compilazione automatica possono contenere dati privati, come password o informazioni sulla carta di credito, i suggerimenti vengono nascosti dall'IME finché l'utente non ne seleziona uno. Aggiorna gli IME e i servizi di compilazione automatica, come i gestori delle password, per utilizzare questa funzionalità. Se un IME o un servizio di compilazione automatica non supporta la compilazione automatica in linea, i suggerimenti vengono visualizzati in un menu, come nelle versioni precedenti ad Android 11.
Flusso di lavoro
In questo flusso, per IME si intende la tastiera corrente o un altro editor di input e per fornitore di suggerimenti si intende il fornitore appropriato del suggerimento di compilazione automatica. A seconda del campo di immissione e delle impostazioni dell'utente, il fornitore di suggerimenti potrebbe essere la piattaforma o un servizio di compilazione automatica.
L'utente si concentra su un campo di immissione che attiva la compilazione automatica, ad esempio un campo di immissione della password o della carta di credito.
La piattaforma esegue query sull'IME corrente e sul fornitore di suggerimenti appropriato per verificare se supportano la compilazione automatica in linea. Se l'IME o il fornitore di suggerimenti non supporta la compilazione automatica in linea, il suggerimento viene visualizzato in un menu, come su Android 10 e versioni precedenti.
La piattaforma chiede all'IME di fornire una richiesta di suggerimento. Questa richiesta di suggerimenti specifica il numero massimo di suggerimenti da visualizzare e fornisce anche le specifiche di presentazione per ogni suggerimento. Le specifiche di presentazione specificano elementi quali dimensioni massime, dimensioni del testo, colori e dati dei caratteri, consentendo al fornitore di suggerimenti di abbinare l'aspetto dell'IME.
La piattaforma chiede al fornitore di suggerimenti di fornire fino al numero di suggerimenti richiesto. Ogni suggerimento include un callback per gonfiare un
View
contenente l'interfaccia utente del suggerimento.La piattaforma informa l'IME che i suggerimenti sono pronti. L'IME mostra i suggerimenti chiamando il metodo di callback per gonfiare ogni
View
del suggerimento. Per proteggere le informazioni private dell'utente, l'IME non vede i suggerimenti in questa fase.Se l'utente seleziona uno dei suggerimenti, l'IME viene informato nello stesso modo come se l'utente selezionasse un suggerimento da un menu di sistema.
Le sezioni seguenti descrivono come configurare il servizio di compilazione automatica o l'IME per supportare la compilazione automatica in linea.
Configurare gli IME per supportare la compilazione automatica in linea
Questa sezione descrive come configurare l'IME in modo che supporti la compilazione automatica in linea. Se il tuo IME non supporta la compilazione automatica in linea, per impostazione predefinita la piattaforma mostra i suggerimenti di compilazione automatica in un menu.
L'IME deve impostare l'attributo supportsInlinedSuggestions
su
true
:
<input-method
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsInlineSuggestions="true"/>
Quando la piattaforma ha bisogno di un suggerimento di compilazione automatica, chiama il metodo
InputMethodService.onCreateInlineSuggestionsRequest()
dell'IME. Devi implementare questo metodo. Restituire un
InlineSuggestionsRequest
specificando quanto segue:
- Il numero di suggerimenti che vuoi ricevere dall'IME.
Un
InlinePresentationSpec
per ogni suggerimento, che definisce la modalità di presentazione del suggerimento.
Quando la piattaforma ha suggerimenti, chiama il metodo
onInlineSuggestionsResponse()
dell'IME, passando un
InlineSuggestionsResponse
contenente i suggerimenti. Devi implementare questo metodo. Nell'implementazione, chiama
InlineSuggestionsResponse.getInlineSuggestions()
per ottenere l'elenco dei suggerimenti, quindi espandi ogni suggerimento chiamando il relativo
metodo
InlineSuggestion.inflate()
.
Configurare i servizi di compilazione automatica per supportare la compilazione automatica in linea
Questa sezione descrive come configurare il servizio di compilazione automatica in modo da supportare la compilazione automatica in linea. Se la tua app non supporta la compilazione automatica in linea, la piattaforma per impostazione predefinita mostra i suggerimenti di compilazione automatica in un menu.
Il servizio di compilazione automatica deve impostare l'attributo supportsInlinedSuggestions
su
true
:
<autofill-service
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsInlineSuggestions="true"/>
Quando l'IME ha bisogno di suggerimenti di compilazione automatica, la piattaforma chiama il metodo onFillRequest()
del servizio di compilazione automatica, come avviene nelle versioni precedenti ad Android 11. Tuttavia, il servizio deve chiamare il metodo getInlineSuggestionsRequest()
dell'oggetto FillRequest
passato per ottenere il InlineSuggestionsRequest
creato dall'IME. Il valore InlineSuggestionsRequest
specifica il numero di suggerimenti in linea necessari e come deve essere presentato ciascuno. Se l'IME non supporta i suggerimenti in linea,
il metodo restituisce null
.
Il servizio di compilazione automatica crea oggetti
InlinePresentation
fino al numero massimo richiesto in InlineSuggestionsRequest
.
Le presentazioni devono rispettare i vincoli di dimensione specificati dal
InlineSuggestionsRequest
. Per restituire i suggerimenti all'IME, chiama
Dataset.Builder.setValue()
una volta per ogni suggerimento. Android 11 fornisce versioni di
Dataset.Builder.setValue()
per supportare i suggerimenti in linea.