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.
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) }