Intégrer le Gestionnaire d'identifiants à la saisie automatique

À 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 se concentre sur l'une de ces vues, la requête correspondante est envoyée au Gestionnaire d'identifiants. Les identifiants obtenus sont agrégés pour tous les fournisseurs et affichés dans les UI de saisie automatique, comme les suggestions intégrées au clavier ou les suggestions de menu déroulant. Cette fonctionnalité peut être utilisée comme solution de secours lorsque les utilisateurs ferment accidentellement le sélecteur de compte Credential Manager, puis appuient sur les champs concernés.

La bibliothèque Jetpack androidx.credentials est le point de terminaison privilégié que les développeurs doivent utiliser pour cette fonctionnalité.

Illustration montrant les identifiants dans les résultats de saisie automatique
Figure 1 : Résultats de la saisie automatique avec des identifiants utilisant un mot de passe, une clé d'accès et la fonctionnalité Se connecter avec Google.

Implémentation

Pour utiliser Credential Manager 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 concernées. La gestion des réponses est la même, que la réponse provienne de l'appel d'API getCredential ou PendingGetCredentialRequest, comme indiqué dans l'exemple suivant.

Commencez par construire 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);
  }
}

Enfin, activez l'expérience de 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)
}