Integrar o Gerenciador de credenciais ao preenchimento automático

A partir do Android 15 Beta 2, combinado com androidx.credentials:1.5.0-alpha01, os desenvolvedores podem vincular visualizações específicas, como campos de nome de usuário ou senha, com solicitações do Gerenciador de credenciais. Quando o usuário foca em uma dessas visualizações, a solicitação correspondente é enviada ao Credential Manager. As credenciais resultantes são agregadas em todos os provedores e exibidas em interfaces de preenchimento automático, como sugestões inline do teclado ou sugestões suspensas. Esse recurso pode ser usado como alternativa quando os usuários dispensam acidentalmente o seletor de contas do Credential Manager e tocam nos campos relevantes.

A biblioteca Jetpack androidx.credentials é o endpoint preferido para desenvolvedores usarem esse recurso.

Ilustração mostrando credenciais nos resultados do preenchimento automático
Figura 1:resultados do preenchimento automático com credenciais usando senha, chave de acesso e Fazer login com o Google.

Implementação

Para usar o Gerenciador de credenciais e mostrar credenciais nos resultados do preenchimento automático, use a implementação padrão para criar um GetCredentialRequest e defini-lo nas visualizações relevantes. O processamento da resposta é o mesmo, seja ela da chamada de API getCredential ou do PendingGetCredentialRequest, conforme mostrado no exemplo a seguir.

Primeiro, crie um GetCredentialRequest:

// Retrieves the user's saved password for your app. val getPasswordOption = GetPasswordOption()  // Get a passkey from the user's public key credential provider. val getPublicKeyCredentialOption = GetPublicKeyCredentialOption(     requestJson = requestJson )  val getCredRequest = GetCredentialRequest(     listOf(getPasswordOption, getPublicKeyCredentialOption) ) 

Em seguida, chame a API getCredential. O seletor do Credential Manager será exibido.

coroutineScope {     try {         val result = credentialManager.getCredential(             context = activityContext, // Use an activity-based context.             request = getCredRequest         )         handleSignIn(result)     } catch (e: GetCredentialException) {         handleFailure(e)     } } 

Por fim, ative a experiência de preenchimento automático. Defina o getCredRequest como visualizações relevantes (como username, password) para ativar os resultados de credenciais no preenchimento automático quando o usuário interage com essas visualizações.

usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(     getCredRequest ) { response ->     handleSignIn(response) }  passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(     getCredRequest ) { response ->     handleSignIn(response) }