Tích hợp Trình quản lý thông tin xác thực với tính năng tự động điền

Kể từ Android 15 Beta 2, kết hợp với androidx.credentials:1.5.0-alpha01, nhà phát triển có thể liên kết các thành phần hiển thị cụ thể như trường tên người dùng hoặc mật khẩu với các 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 sẽ được tổng hợp trên các 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 thả xuống. Bạn có thể 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 của Trình quản lý thông tin xác thực, sau đó nhấn vào các trường liên quan.

Thư viện Jetpack androidx.credentials 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 minh hoạ cho thấy thông tin xác thực trong kết quả tự động điền
Hình 1: Kết quả tự động điền thông tin xác thực bằng mật khẩu, khoá truy cập và tính năng Đă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 quy trình triển khai tiêu chuẩn để tạo GetCredentialRequest rồi đặt thành các chế độ xem có liên quan. Cách xử lý phản hồi là như nhau, cho dù phản hồi đến từ lệnh gọi API getCredential hay PendingGetCredentialRequest, như trong ví dụ sau.

Trước tiên, hãy tạo một 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)
)

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.

coroutineScope {
    try {
        val result = credentialManager.getCredential(
            context = activityContext, // Use an activity-based context.
            request = getCredRequest
        )
        handleSignIn(result)
    } catch (e: GetCredentialException) {
        handleFailure(e)
    }
}

Cuối cùng, hãy bật trải nghiệm tự động điền. Đặt getCredRequest thành các chế độ xem có liên quan (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.

usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
    getCredRequest
) { response ->
    handleSignIn(response)
}

passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
    getCredRequest
) { response ->
    handleSignIn(response)
}