A partire da Android 15 Beta 2, abbinato a androidx.credentials:1.5.0-alpha01, gli sviluppatori possono collegare visualizzazioni specifiche come campi nome utente o password alle richieste di Gestore delle credenziali. Quando l'utente è incentrato su una di queste viste, la richiesta corrispondente viene inviata Gestore. Le credenziali risultanti vengono aggregate tra i fornitori e visualizzate nelle UI di compilazione automatica, ad esempio i suggerimenti in linea della tastiera o i suggerimenti del menu a discesa. Questa funzionalità può essere utilizzata come riserva quando gli utenti ignorano accidentalmente il Selettore dell'account Gestore delle credenziali, quindi tocca i campi pertinenti.
La libreria Jetpack androidx.credentials è l'endpoint preferito per agli sviluppatori di usare per questa funzione.
Figura 1: compilazione automatica dei risultati con le credenziali utilizzando password, passkey e
Accedi con Google.
Implementazione
Per utilizzare Gestore delle credenziali per mostrare le credenziali nei risultati della compilazione automatica, utilizza l'implementazione standard per creare un GetCredentialRequest
e impostalo sulle visualizzazioni pertinenti. La gestione della risposta è la stessa, indipendentemente dal fatto che provenga dalla chiamata dell'API getCredential
o da PendingGetCredentialRequest
, come mostrato nell'esempio seguente.
Innanzitutto, crea 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) );
Successivamente, chiama l'API getCredential
. Viene visualizzato Gestore delle credenziali
selettore.
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); } } });
Infine, attiva l'esperienza di compilazione automatica. Imposta getCredRequest
come pertinente
visualizzazioni (ad esempio username, password
) per attivare i risultati delle credenziali nella compilazione automatica
quando l'utente interagisce con queste visualizzazioni.
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; } )