A partir do Android 11, teclados e outros editores de método de entrada (IMEs) podem mostrar sugestões de preenchimento automático inline, em uma linha de sugestões ou semelhante, em vez de mostrar sugestões em um menu. Como essas sugestões de preenchimento automático podem conter dados particulares, como senhas ou informações de cartão de crédito, as sugestões ficam ocultas para o IME até que o usuário selecionará uma. Atualize os IMEs e os serviços de preenchimento automático, como gerenciadores de senhas, para usar esse recurso. Se um IME ou um serviço de preenchimento automático não for compatível com o preenchimento automático inline, as sugestões serão mostradas em um menu, como nas versões anteriores ao Android 11.
Fluxo de trabalho
Nesse fluxo, IME significa o teclado atual ou outro editor de entrada, e provedor de sugestões significa o provedor adequado da sugestão de preenchimento automático. Dependendo do campo de entrada e das configurações do usuário, o provedor de sugestões pode ser a plataforma ou um serviço de preenchimento automático.
O usuário se concentra em um campo de entrada que aciona o preenchimento automático, como um campo de entrada de senha ou de cartão de crédito.
A plataforma consulta o IME atual e o provedor de sugestões apropriado. para saber se eles são compatíveis com o preenchimento automático in-line. Se o IME ou o o provedor de sugestões não for compatível com o preenchimento automático in-line, a sugestão será exibida em um menu, como no Android 10 e versões anteriores.
A plataforma solicitará que o IME forneça uma solicitação de sugestão. Esta sugestão request especifica o número máximo de sugestões a serem exibidas e também fornece especificações de apresentação para cada sugestão. Especificações da apresentação especificar itens como tamanho máximo, tamanho do texto, cores e dados de fonte, permitindo o provedor de sugestões corresponda à aparência do IME.
A plataforma solicitará que o provedor de sugestões forneça sugestões até o número solicitado. Cada sugestão inclui um callback para inflar um
View
que contém a IU da sugestão.A plataforma informará ao IME que as sugestões estão prontas. O IME exibirá as sugestões chamando o método de callback para inflar o
View
de cada sugestão. Para proteger as informações particulares do usuário, o IME não conhece as sugestões nessa etapa.Se o usuário selecionar uma das sugestões, o IME será informado da mesma maneira que se o usuário escolhesse uma sugestão em um menu do sistema.
As seções a seguir descrevem como configurar seu IME ou serviço de preenchimento automático para são compatíveis com o preenchimento automático inline.
Configurar IMEs para oferecer compatibilidade com o preenchimento automático in-line
Esta seção descreve como configurar seu IME para oferecer compatibilidade com o preenchimento automático in-line. Se seu IME não oferecer suporte ao preenchimento automático in-line, o padrão da plataforma será mostrar sugestões de preenchimento automático em um menu.
Seu IME precisa definir o atributo supportsInlinedSuggestions
como
true
:
<input-method
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsInlineSuggestions="true"/>
Quando a plataforma precisar de uma sugestão de preenchimento automático, ela chamará o método
InputMethodService.onCreateInlineSuggestionsRequest()
do IME. É preciso implementar esse método. Retorne um
InlineSuggestionsRequest
especificando o seguinte:
- Quantas sugestões seu IME quer.
Um
InlinePresentationSpec
para cada sugestão, definindo como a sugestão será apresentada.
Quando a plataforma tiver sugestões, ela chamará o método
onInlineSuggestionsResponse()
do IME, passando uma
InlineSuggestionsResponse
com as sugestões. É preciso implementar esse método. Na
implementação, chame
InlineSuggestionsResponse.getInlineSuggestions()
para acessar a lista de sugestões e, em seguida, infle cada sugestão chamando o
método
InlineSuggestion.inflate()
.
Configurar serviços de preenchimento automático compatíveis com o preenchimento automático in-line
Esta seção descreve como configurar seu serviço de preenchimento automático para oferecer suporte inline preenchimento automático. Se o app não for compatível com o preenchimento automático in-line, o padrão da plataforma será mostrando sugestões de preenchimento automático em um menu.
Seu serviço de preenchimento automático precisa definir o atributo supportsInlinedSuggestions
como
true
:
<autofill-service
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsInlineSuggestions="true"/>
Quando o IME precisar de sugestões de preenchimento automático, a plataforma chamará o método
onFillRequest()
do serviço de preenchimento automático, como faz nas versões anteriores ao Android 11. No entanto, sua
serviço deve chamar o objeto FillRequest
passado
getInlineSuggestionsRequest()
para obter o InlineSuggestionsRequest
criado pelo IME. O
InlineSuggestionsRequest
especifica quantas sugestões inline são necessárias e
como cada um deles deve ser apresentado. Se o IME não for compatível com sugestões inline,
o método retornará null
.
Seu serviço de preenchimento automático cria objetos
InlinePresentation
até o número máximo solicitado no InlineSuggestionsRequest
.
Suas apresentações precisam obedecer às restrições de tamanho especificadas pelo
InlineSuggestionsRequest
. Para retornar suas sugestões ao IME, chame
Dataset.Builder.setValue()
uma vez para cada sugestão. O Android 11 oferece versões do
Dataset.Builder.setValue()
para oferecer compatibilidade com sugestões inline.