Kimlik Bilgisi Yöneticisi'ni otomatik doldurma özelliğiyle entegre etme

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.

Otomatik doldurma sonuçlarında kimlik bilgilerini gösteren resim
Ş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)
}