Mulai Android 15 Beta 2, yang disambungkan dengan androidx.credentials:1.5.0-alpha01, developer dapat menautkan tampilan tertentu seperti kolom nama pengguna atau sandi dengan permintaan Pengelola Kredensial. Saat pengguna berfokus pada salah satu tampilan ini, permintaan yang sesuai dikirim ke Kredensial Manajer. Kredensial yang dihasilkan digabungkan dari berbagai 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 Pengelola Kredensial, lalu ketuk kolom yang relevan.
Library Jetpack androidx.credentials adalah endpoint pilihan bagi developer untuk digunakan 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 isi otomatis, gunakan
implementasi standar untuk membuat GetCredentialRequest
, lalu menyetelnya
pada tampilan yang relevan. Penanganan responsnya sama, baik respons berasal dari panggilan API getCredential
maupun PendingGetCredentialRequest
, seperti yang ditunjukkan dalam contoh berikut.
Pertama, buat GetCredentialRequest
:
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) );
Selanjutnya, panggil API getCredential
. Tindakan ini akan menampilkan Pengelola Kredensial
pemilih.
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); } } });
Terakhir, aktifkan pengalaman isi otomatis. Tetapkan getCredRequest
ke nilai yang relevan
tampilan (seperti username, password
) untuk mengaktifkan hasil kredensial di isi otomatis
saat pengguna berinteraksi dengan tampilan ini.
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; } )