ตั้งแต่ Android 15 เบต้า 2 เป็นต้นไป เมื่อใช้ร่วมกับ androidx.credentials:1.5.0-alpha01 นักพัฒนาแอปจะลิงก์มุมมองที่เฉพาะเจาะจง เช่น ช่องชื่อผู้ใช้หรือรหัสผ่าน กับคำขอของเครื่องมือจัดการข้อมูลเข้าสู่ระบบได้ เมื่อผู้ใช้ โฟกัสที่มุมมองใดมุมมองหนึ่งเหล่านี้ ระบบจะส่งคำขอที่เกี่ยวข้องไปยังเครื่องมือจัดการข้อมูลเข้าสู่ระบบ ระบบจะรวบรวมข้อมูลเข้าสู่ระบบที่ได้จากผู้ให้บริการต่างๆ และแสดงใน UI การป้อนข้อความอัตโนมัติ เช่น คำแนะนำในแป้นพิมพ์ หรือคำแนะนำแบบเลื่อนลง คุณใช้ฟีเจอร์นี้เป็นตัวเลือกสำรองได้เมื่อผู้ใช้ปิดตัวเลือกบัญชีในเครื่องมือจัดการข้อมูลเข้าสู่ระบบโดยไม่ได้ตั้งใจ แล้วแตะช่องที่เกี่ยวข้อง
ไลบรารี Jetpack androidx.credentials เป็นปลายทางที่แนะนำสำหรับ นักพัฒนาแอปในการใช้ฟีเจอร์นี้
รูปที่ 1: ผลการป้อนข้อความอัตโนมัติด้วยข้อมูลเข้าสู่ระบบโดยใช้รหัสผ่าน พาสคีย์ และ
ลงชื่อเข้าใช้ด้วย Google
การใช้งาน
หากต้องการใช้เครื่องมือจัดการข้อมูลเข้าสู่ระบบเพื่อแสดงข้อมูลเข้าสู่ระบบในผลการเติมข้อความอัตโนมัติ ให้ใช้การติดตั้งใช้งานมาตรฐานเพื่อสร้าง GetCredentialRequest
แล้วตั้งค่า
เป็นมุมมองที่เกี่ยวข้อง การจัดการการตอบกลับจะเหมือนกัน ไม่ว่าการตอบกลับจะมาจากการเรียก API ของ getCredential
หรือ PendingGetCredentialRequest
ดังที่แสดงในตัวอย่างต่อไปนี้
ก่อนอื่นให้สร้าง 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)
)
จากนั้นเรียกใช้ getCredential
API ซึ่งจะแสดงตัวเลือก
เครื่องมือจัดการข้อมูลเข้าสู่ระบบ
coroutineScope {
try {
val result = credentialManager.getCredential(
context = activityContext, // Use an activity-based context.
request = getCredRequest
)
handleSignIn(result);
} catch (e: GetCredentialException) {
handleFailure(e);
}
}
สุดท้าย ให้เปิดใช้ประสบการณ์การป้อนข้อความอัตโนมัติ ตั้งค่า getCredRequest
เป็นมุมมองที่เกี่ยวข้อง (เช่น username, password
) เพื่อเปิดใช้ผลลัพธ์ของข้อมูลเข้าสู่ระบบในการป้อนข้อความอัตโนมัติ
เมื่อผู้ใช้โต้ตอบกับมุมมองเหล่านี้
usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest) { response -> handleSignIn(response)
}
passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
getCredRequest) { response -> handleSignIn(response)
}