À partir de la version bêta 2 d'Android 15, associée à androidx.credentials:1.5.0-alpha01, les développeurs peuvent associer des vues spécifiques, comme nom d'utilisateur ou mot de passe avec les requêtes du Gestionnaire d'identifiants. Lorsque l'utilisateur met en surbrillance l'une de ces vues, la requête correspondante est envoyée au Gestionnaire d'identifiants. Les identifiants obtenus sont agrégés pour l'ensemble des fournisseurs et affichés dans les UI de saisie automatique, comme les suggestions intégrées au clavier ou les suggestions des menus déroulants. 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 concernés.
La bibliothèque Jetpack androidx.credentials est le point de terminaison privilégié pour développeurs à utiliser pour cette fonctionnalité.
Figure 1:Résultats de la saisie automatique des identifiants à l'aide d'un mot de passe, d'une clé d'accès et d'une
Connectez-vous avec Google.
Implémentation
Pour utiliser le Gestionnaire d'identifiants pour afficher les identifiants dans les résultats de saisie semi-automatique, utilisez l'implémentation standard pour créer un GetCredentialRequest
, puis définissez-le sur les vues pertinentes. Le traitement de la réponse est identique, que la réponse
vient de l'appel d'API getCredential
ou de PendingGetCredentialRequest
, comme
comme illustré dans l'exemple suivant.
Commencez par créer un GetCredentialRequest
:
Kotlin
// 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) )
Java
// Retrieves the user's saved password for your app. GetPasswordOption getPasswordOption = new GetPasswordOption(); // Get a passkey from the user's public key credential provider. GetPublicKeyCredentialOption getPublicKeyCredentialOption = new GetPublicKeyCredentialOption(requestJson); GetCredentialRequest getCredRequest = new GetCredentialRequest( Arrays.asList(getPasswordOption, getPublicKeyCredentialOption) );
Ensuite, appelez l'API getCredential
. Le Gestionnaire d'identifiants s'affiche
sélecteur.
Kotlin
coroutineScope.launch { try { val result = credentialManager.getCredential( context = activityContext, // Use an activity-based context. request = getCredRequest ) handleSignIn(result); } catch (GetCredentialException e) { handleFailure(e); } }
Java
coroutineScope.launch(new CoroutineScopeRunnable() { @Override public void run(@NonNull CoroutineScope scope) { try { GetCredentialResponse result = credentialManager.getCredential( activityContext, // Use an activity-based context. getCredRequest ); handleSignIn(result); } catch (GetCredentialException e) { handleFailure(e); } } });
Enfin, activez l'expérience de saisie automatique. Définissez le paramètre getCredRequest
sur les valeurs appropriées
affichages (tels que username, password
) pour activer les résultats des identifiants dans la saisie automatique
lorsque l'utilisateur interagit
avec ces vues.
Kotlin
import androidx.credentials.PendingGetCredentialRequest usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest( getCredRequest) { response -> handleSignIn(response) } passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest( getCredRequest) { response -> handleSignIn(response) }
Java
import androidx.credentials.CredentialManagerViewHandler; import androidx.credentials.PendingGetCredentialRequest; CredentialManagerViewHandler.setPendingGetCredentialRequest( usernameEditText, new PendingGetCredentialRequest( getCredRequest, result -> { handleSignIn(result); return null; } ) CredentialManagerViewHandler.setPendingGetCredentialRequest( passwordEditText, new PendingGetCredentialRequest( getCredRequest, result -> { handleSignIn(result); return null; } )