À partir d'Android 15 bêta 2, associé à androidx.credentials:1.5.0-alpha01, les développeurs peuvent associer des vues spécifiques, comme les champs de nom d'utilisateur ou de mot de passe, aux requêtes du Gestionnaire d'identifiants. Lorsque l'utilisateur sélectionne l'une de ces vues, la requête correspondante est envoyée à Credential Manager. Les identifiants obtenus sont agrégés entre les fournisseurs et affichés dans les interfaces utilisateur de saisie automatique, telles que les suggestions intégrées au clavier ou les suggestions de liste déroulante. Cette fonctionnalité peut être utilisée comme solution de secours lorsque les utilisateurs ignorent accidentellement le sélecteur de compte du Gestionnaire d'identifiants, puis appuient sur les champs pertinents.
La bibliothèque Jetpack androidx.credentials est le point de terminaison privilégié pour les développeurs qui souhaitent utiliser cette fonctionnalité.
Figure 1 : Résultats de la saisie automatique avec des identifiants utilisant un mot de passe, une clé d'accès et Se connecter avec Google.
Implémentation
Pour utiliser le Gestionnaire d'identifiants afin d'afficher les identifiants dans les résultats de saisie automatique, utilisez l'implémentation standard pour créer un GetCredentialRequest, puis définissez-le sur les vues pertinentes. La gestion de la réponse est la même, que la réponse provienne de l'appel d'API getCredential ou de l'appel d'API PendingGetCredentialRequest, comme illustré dans l'exemple suivant.
Commencez par créer un 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)
)
Ensuite, appelez l'API getCredential. Le sélecteur du Gestionnaire d'identifiants s'affiche.
coroutineScope {
try {
val result = credentialManager.getCredential(
context = activityContext, // Use an activity-based context.
request = getCredRequest
)
handleSignIn(result)
} catch (e: GetCredentialException) {
handleFailure(e)
}
}
Pour terminer, activez la saisie automatique. Définissez getCredRequest sur les vues pertinentes (telles que username, password) pour activer les résultats d'identifiants dans la saisie automatique lorsque l'utilisateur interagit avec ces vues.
usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest
) { response ->
handleSignIn(response)
}
passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest
) { response ->
handleSignIn(response)
}