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