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
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Kể từ Android 15 Beta 2, khi 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 khung 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 những khung hiển thị 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 đăng nhập thu được sẽ được tổng hợp trên 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 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 trình chọn tài khoản của Trình quản lý thông tin xác thực rồi nhấn vào các trường có liên quan.
Thư viện Jetpack androidx.credentials là điểm cuối mà nhà phát triển nên dùng cho tính năng này.
Hình 1: Kết quả tự động điền thông tin đăng nhập 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 đăng nhập trong kết quả tự động điền, hãy sử dụng chế độ triển khai tiêu chuẩn để tạo GetCredentialRequest rồi đặt chế độ này thành các khung hiển thị có liên quan. Việc 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ư minh hoạ trong ví dụ sau.
Trước tiên, hãy tạo một GetCredentialRequest:
// Retrieves the user's saved password for your app.valgetPasswordOption=GetPasswordOption()// Get a passkey from the user's public key credential provider.valgetPublicKeyCredentialOption=GetPublicKeyCredentialOption(requestJson=requestJson)valgetCredRequest=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{valresult=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 tính năng tự động điền. Đặt getCredRequest thành các khung hiển thị 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 khung hiển thị này.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-08-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-08-27 UTC."],[],[],null,["Starting with Android 15 Beta 2, paired with\n[androidx.credentials:1.5.0-alpha01](/jetpack/androidx/releases/credentials#version_15_2), developers can link specific views like\nusername or password fields with Credential Manager requests. When the user\nfocuses on one of these views, the corresponding request is sent to Credential\nManager. The resulting credentials are aggregated across providers and displayed\nin autofill UIs, such as keyboard inline suggestions, or drop-down suggestions.\nThis feature can be used as a fallback when users accidentally dismiss the\nCredential Manager account selector and then tap on the relevant fields.\n\nThe ***Jetpack androidx.credentials*** library is the preferred endpoint for\ndevelopers to use for this feature.\n\n\u003cbr /\u003e\n\n\n**Figure 1:** Autofill results with credentials using password, passkey, and\nSign in with Google.\n| **Note:** This feature is only available for `View` objects at this time.\n\nImplementation\n\nTo use Credential Manager to show credentials in autofill results, use the\n[standard implementation](/identity/sign-in/credential-manager) to build a `GetCredentialRequest` and then set it\nto the relevant views. The response handling is the same, whether the response\ncomes from the `getCredential` API call or the `PendingGetCredentialRequest`, as\nshown in the following example.\n\nFirst, construct a `GetCredentialRequest`: \n\n // Retrieves the user's saved password for your app.\n val getPasswordOption = GetPasswordOption()\n\n // Get a passkey from the user's public key credential provider.\n val getPublicKeyCredentialOption = GetPublicKeyCredentialOption(\n requestJson = requestJson\n )\n\n val getCredRequest = GetCredentialRequest(\n listOf(getPasswordOption, getPublicKeyCredentialOption)\n )\n\nNext, call the `getCredential` API. This displays the Credential Manager\nselector. \n\n coroutineScope {\n try {\n val result = credentialManager.getCredential(\n context = activityContext, // Use an activity-based context.\n request = getCredRequest\n )\n handleSignIn(result)\n } catch (e: GetCredentialException) {\n handleFailure(e)\n }\n }\n\nFinally, enable the autofill experience. Set the `getCredRequest` to relevant\nviews (such as `username, password`) to enable credential results in autofill\nwhen the user interacts with these views.\n**Note:** The `setPendingGetCredentialRequest` is an *extension API* in the androidx.credentials library, and is called differently between Kotlin and Java. \n\n usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(\n getCredRequest\n ) { response -\u003e\n handleSignIn(response)\n }\n\n passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(\n getCredRequest\n ) { response -\u003e\n handleSignIn(response)\n }"]]