Mulai dari Android 15 Beta 2, jika dipasangkan dengan androidx.credentials:1.5.0-alpha01, developer dapat menautkan tampilan tertentu seperti kolom nama pengguna atau sandi dengan permintaan Pengelola Kredensial. Saat pengguna memfokuskan salah satu tampilan ini, permintaan yang sesuai akan dikirim ke Credential Manager. Kredensial yang dihasilkan digabungkan di seluruh penyedia dan ditampilkan di UI isi otomatis, seperti saran inline keyboard, atau saran drop-down. Fitur ini dapat digunakan sebagai pengganti saat pengguna secara tidak sengaja menutup pemilih akun Credential Manager, lalu mengetuk kolom yang relevan.
Library Jetpack androidx.credentials adalah endpoint pilihan yang dapat digunakan developer untuk fitur ini.
Gambar 1: Hasil isi otomatis dengan kredensial menggunakan sandi, kunci sandi, dan
Login dengan Google.
Implementasi
Untuk menggunakan Pengelola Kredensial guna menampilkan kredensial dalam hasil pengisian otomatis, gunakan
implementasi standar untuk membuat GetCredentialRequest
, lalu tetapkan
ke tampilan yang relevan. Penanganan responsnya sama, baik respons
berasal dari panggilan API getCredential
atau PendingGetCredentialRequest
, seperti
yang ditunjukkan dalam contoh berikut.
Pertama, buat GetCredentialRequest
:
// 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)
)
Selanjutnya, panggil API getCredential
. Tindakan ini akan menampilkan pemilih Pengelola Kredensial.
coroutineScope {
try {
val result = credentialManager.getCredential(
context = activityContext, // Use an activity-based context.
request = getCredRequest
)
handleSignIn(result);
} catch (e: GetCredentialException) {
handleFailure(e);
}
}
Terakhir, aktifkan pengalaman isi otomatis. Tetapkan getCredRequest
ke tampilan yang relevan (seperti username, password
) untuk mengaktifkan hasil kredensial di pengisian otomatis saat pengguna berinteraksi dengan tampilan ini.
usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest) { response -> handleSignIn(response)
}
passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest) { response -> handleSignIn(response)
}