Android 15 Beta 2'den itibaren, androidx.credentials:1.5.0-alpha01 ile birlikte geliştiriciler kullanıcı adı veya şifre alanları gibi belirli görünümleri Kimlik Bilgisi Yöneticisi istekleriyle bağlayabilir. Kullanıcı bu görünümlerden birine odaklandığında ilgili istek Kimlik Bilgisi Yöneticisi'ne gönderilir. Oluşturulan kimlik bilgileri sağlayıcılar arasında toplanır ve klavye satır içi önerileri veya açılır menü önerileri gibi otomatik doldurma kullanıcı arayüzlerinde gösterilir. Bu özellik, kullanıcılar kimlik bilgisi yöneticisi hesap seçicisini yanlışlıkla kapatıp ilgili alanlara dokunduğunda yedek olarak kullanılabilir.
Geliştiricilerin bu özellik için tercih ettiği uç nokta, Jetpack androidx.credentials kitaplığıdır.
Şekil 1: Şifre, geçiş anahtarı ve Google ile oturum açma bilgilerini kullanarak sonuçları otomatik doldurma.
Uygulama
Kimlik Bilgisi Yöneticisi'ni, otomatik doldurma sonuçlarında kimlik bilgilerini göstermek için kullanmak istiyorsanız standart uygulamayı kullanarak bir GetCredentialRequest
oluşturun ve ardından ilgili görünümlere ayarlayın. Yanıtın getCredential
API çağrısından mı yoksa PendingGetCredentialRequest
'ten mi geldiğine bakılmaksızın yanıt işleme aynıdır (aşağıdaki örnekte gösterildiği gibi).
Öncelikle bir GetCredentialRequest
oluşturun:
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) );
Ardından getCredential
API'yi çağırın. Kimlik Bilgisi Yöneticisi seçicisi görüntülenir.
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); } } });
Son olarak, otomatik doldurma deneyimini etkinleştirin. Kullanıcı bu görünümlerle etkileşime geçtiğinde kimlik bilgisi sonuçlarını otomatik doldurma özelliğini etkinleştirmek için getCredRequest
'ü alakalı görünümlere (ör. username, password
) ayarlayın.
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; } )