Android 15 Beta 2'den itibaren androidx.credentials:1.5.0-alpha01 ile eşleştirilen geliştiriciler, kullanıcı adı veya şifre alanları gibi belirli görünümleri Credential Manager istekleriyle 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 toplanır ve klavyedeki satır içi öneriler veya açılır liste önerileri gibi otomatik doldurma kullanıcı arayüzlerinde gösterilir. Bu özellik, kullanıcılar yanlışlıkla kimlik bilgisi yöneticisi hesap seçiciyi kapattıktan sonra ilgili alanlara dokunduklarında yedek olarak kullanılabilir.
Jetpack androidx.credentials kitaplığı, geliştiricilerin bu özellik için kullanmayı tercih ettiği uç noktadır.
Şekil 1: Şifre, geçiş anahtarı ve Google ile oturum açma kullanılarak kimlik bilgileriyle otomatik doldurma sonuçları.
Uygulama
Otomatik doldurma sonuçlarında kimlik bilgilerini göstermek için Kimlik Bilgisi Yöneticisi'ni kullanmak üzere GetCredentialRequest
oluşturmak için standart uygulamayı kullanın ve ardından bunu ilgili görünümlere ayarlayın. Yanıtın getCredential
API çağrısından veya PendingGetCredentialRequest
'den gelmesi, yanıt işleme açısından fark etmez. Aşağıdaki örnekte gösterildiği gibi, 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'sini çağırın. Bu işlem, kimlik bilgisi yöneticisi seçicisini görüntüler.
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ın gösterilmesi için getCredRequest
öğesini alakalı görünümlere (ör. username, password
) ayarlayın.
usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest) { response -> handleSignIn(response)
}
passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest) { response -> handleSignIn(response)
}