Bắt đầu từ Android 15 Beta 2, ghép nối với androidx.credentials:1.5.0-alpha01, nhà phát triển có thể liên kết các chế độ xem cụ thể như trường tên người dùng hoặc mật khẩu với yêu cầu của Trình quản lý thông tin xác thực. Khi người dùng tập trung vào một trong các chế độ xem này, yêu cầu tương ứng sẽ được gửi đến Trình quản lý thông tin xác thực. Thông tin xác thực thu được được tổng hợp từ nhiều nhà cung cấp và hiển thị trong giao diện người dùng tự động điền, chẳng hạn như đề xuất cùng dòng trên bàn phím hoặc đề xuất trong trình đơn thả xuống. Bạn có thể sử dụng tính năng này làm phương án dự phòng khi người dùng vô tình đóng bộ chọn tài khoản Trình quản lý thông tin xác thực, sau đó nhấn vào các trường có liên quan.
Thư viện androidx.credentials của Jetpack là điểm cuối ưu tiên mà nhà phát triển nên sử dụng cho tính năng này.
Hình 1: Tự động điền kết quả bằng thông tin xác thực thông qua mật khẩu, khoá truy cập và
Đăng nhập bằng Google.
Triển khai
Để sử dụng Trình quản lý thông tin xác thực nhằm hiển thị thông tin xác thực trong kết quả tự động điền, hãy sử dụng
cách triển khai chuẩn để tạo GetCredentialRequest
rồi đặt
cho các chế độ xem có liên quan. Quá trình xử lý phản hồi là giống nhau, cho dù phản hồi
đến từ lệnh gọi API getCredential
hoặc PendingGetCredentialRequest
, dưới dạng
như trong ví dụ sau.
Trước tiên, hãy tạo 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) );
Tiếp theo, hãy gọi API getCredential
. Thao tác này sẽ hiển thị bộ chọn Trình quản lý thông tin xác thực.
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); } } });
Cuối cùng, hãy bật tính năng tự động điền. Đặt getCredRequest
thành có liên quan
khung hiển thị (chẳng hạn như username, password
) để bật kết quả thông tin xác thực trong tính năng tự động điền
khi người dùng tương tác với các chế độ xem này.
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; } )