A partire da Android 11, le tastiere e altri editor di metodi di immissione (IME) possono mostrare i suggerimenti per la compilazione automatica in linea, in una barra dei suggerimenti o in un modo simile, anziché mostrare i suggerimenti in un menu. Poiché questi suggerimenti di compilazione automatica possono contenere dati privati, come password o dati della carta di credito, i suggerimenti vengono nascosti all'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.
Workflow
In questo flusso, IME indica la tastiera corrente o un altro editor di immissione, mentre provider di suggerimenti indica il provider 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 seleziona 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 una query sull'IME corrente e sul provider di suggerimenti appropriato per verificare se supportano la compilazione automatica in linea. Se l'IME o il provider di suggerimenti non supporta la compilazione automatica in linea, il suggerimento viene mostrato in un menu, come su Android 10 e versioni precedenti.
La piattaforma chiede all'IME di fornire una richiesta di suggerimento. Questa richiesta di suggerimento specifica il numero massimo di suggerimenti da visualizzare e fornisce anche le specifiche di presentazione per ogni suggerimento. Le specifiche di presentazione definiscono elementi come le dimensioni massime, le dimensioni del testo, i colori e i dati dei caratteri, consentendo al provider di suggerimenti di adattarsi all'aspetto dell'IME.
La piattaforma chiede al fornitore di suggerimenti di fornire fino al numero di suggerimenti richiesto. Ogni suggerimento include un callback per l'inflating di un
Viewcontenente la UI del suggerimento.La piattaforma informa l'IME che i suggerimenti sono pronti. L'IME visualizza i suggerimenti chiamando il metodo di callback per espandere l'oggetto
Viewdi ogni suggerimento. Per proteggere le informazioni private dell'utente, l'IME non vede quali sono i suggerimenti in questa fase.Se l'utente seleziona uno dei suggerimenti, l'IME viene informato nello stesso modo in cui l'utente sceglie un suggerimento da un menu di sistema.
Le sezioni seguenti descrivono come configurare l'IME o il servizio di compilazione automatica per supportare la compilazione automatica in linea.
Configura gli IME per supportare la compilazione automatica in linea
Questa sezione descrive come configurare l'IME per supportare la compilazione automatica in linea. Se l'IME non supporta la compilazione automatica in linea, la piattaforma mostra per impostazione predefinita i suggerimenti per la 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 per la compilazione automatica, chiama il metodo InputMethodService.onCreateInlineSuggestionsRequest() dell'IME. Devi implementare questo metodo. Restituisci un InlineSuggestionsRequest specificando quanto segue:
- Il numero di suggerimenti richiesti dall'IME.
**Un
InlinePresentationSpecper ogni suggerimento, che definisce il modo in cui il suggerimento deve essere presentato.
Quando la piattaforma ha dei suggerimenti, chiama il metodo onInlineSuggestionsResponse() dell'IME, passando un InlineSuggestionsResponse contenente i suggerimenti. Devi implementare questo metodo. Nella tua implementazione, chiama
InlineSuggestionsResponse.getInlineSuggestions() per ottenere l'elenco dei
suggerimenti, quindi espandi ogni suggerimento chiamando il relativo
metodo InlineSuggestion.inflate().
Configura i servizi di compilazione automatica per supportare la compilazione automatica in linea
Questa sezione descrive come configurare il servizio di compilazione automatica per supportare la compilazione automatica in linea. Se la tua app non supporta la compilazione automatica in linea, la piattaforma mostra i suggerimenti per la compilazione automatica in un menu per impostazione predefinita.
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 richiede suggerimenti per la compilazione automatica, la piattaforma chiama il metodo onFillRequest() del servizio di compilazione automatica, proprio come avviene nelle versioni precedenti ad Android 11. Tuttavia, il tuo servizio deve chiamare il metodo getInlineSuggestionsRequest() dell'oggetto FillRequest passato. In questo modo viene recuperato l'oggetto InlineSuggestionsRequest creato dall'IME. InlineSuggestionsRequest specifica quanti suggerimenti in linea sono 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 tue presentazioni devono rispettare i vincoli di dimensione specificati da 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.