Android 15 Beta 2'den itibaren geliştiriciler, androidx.credentials:1.5.0-alpha01 ile birlikte kullanıcı adı veya şifre alanları gibi belirli görünümleri Kimlik Bilgisi Yöneticisi isteklerine bağlayabilir. Kullanıcı bu görünümlerden birine odaklandığında ilgili istek, Credential Manager'a gönderilir. Elde edilen kimlik bilgileri, sağlayıcılar arasında birleştirilir ve klavye satır içi önerileri veya açılır öneriler gibi otomatik doldurma kullanıcı arayüzlerinde gösterilir. Bu özellik, kullanıcılar yanlışlıkla Kimlik Bilgisi Yöneticisi hesap seçiciyi kapatıp ilgili alanlara dokunduğunda yedek olarak kullanılabilir.
Geliştiricilerin bu özellik için kullanması tercih edilen uç nokta Jetpack androidx.credentials kitaplığıdır.
Şekil 1: Şifre, geçiş anahtarı ve Google ile oturum açma özelliğini kullanan kimlik bilgileriyle otomatik doldurma sonuçları.
Uygulama
Otomatik doldurma sonuçlarında kimlik bilgilerini göstermek için Kimlik Bilgisi Yöneticisi'ni kullanmak istiyorsanız standart uygulamayı kullanarak bir GetCredentialRequest oluşturun ve ardından bunu ilgili görünümlere ayarlayın. Aşağıdaki örnekte gösterildiği gibi, yanıtın getCredential API çağrısından mı yoksa PendingGetCredentialRequest çağrısından mı geldiğine bakılmaksızın yanıt işleme aynıdır.
Öncelikle bir GetCredentialRequest oluşturun:
// 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)
)
Ardından getCredential API'yi çağırın. Bu işlem, Kimlik Bilgisi Yöneticisi seçiciyi gösterir.
coroutineScope {
try {
val result = credentialManager.getCredential(
context = activityContext, // Use an activity-based context.
request = getCredRequest
)
handleSignIn(result)
} catch (e: GetCredentialException) {
handleFailure(e)
}
}
Son olarak, otomatik doldurma deneyimini etkinleştirin. Kullanıcı bu görünümlerle etkileşimde bulunduğunda otomatik doldurma özelliğinde kimlik bilgisi sonuçlarını etkinleştirmek için getCredRequest özelliğini alakalı görünümlere (ör. username, password) ayarlayın.
usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest
) { response ->
handleSignIn(response)
}
passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest
) { response ->
handleSignIn(response)
}