ผสานรวมเครื่องมือจัดการข้อมูลเข้าสู่ระบบกับการป้อนข้อความอัตโนมัติ

ตั้งแต่ Android 15 รุ่นเบต้าเวอร์ชัน 2 เป็นต้นไป เมื่อใช้ร่วมกับ androidx.credentials:1.5.0-alpha01 นักพัฒนาแอปจะลิงก์มุมมองที่เฉพาะเจาะจง เช่น ช่องชื่อผู้ใช้หรือรหัสผ่าน กับคำขอ Credential Manager ได้ เมื่อผู้ใช้โฟกัสที่มุมมองใดมุมมองหนึ่ง ระบบจะส่งคำขอที่เกี่ยวข้องไปยัง Credential Manager ระบบจะรวบรวมข้อมูลเข้าสู่ระบบที่ได้จากผู้ให้บริการต่างๆ และแสดงใน UI การป้อนข้อความอัตโนมัติ เช่น คำแนะนำแบบอินไลน์ของแป้นพิมพ์ หรือคำแนะนำแบบเลื่อนลง คุณสามารถใช้ฟีเจอร์นี้เป็นตัวเลือกสำรองได้ในกรณีที่ผู้ใช้ปิดตัวเลือกบัญชี Credential Manager โดยไม่ตั้งใจ แล้วแตะช่องที่เกี่ยวข้อง

ไลบรารี Jetpack androidx.credentials เป็นปลายทางที่แนะนำให้นักพัฒนาแอปใช้สำหรับฟีเจอร์นี้

ภาพแสดงข้อมูลเข้าสู่ระบบในผลการป้อนข้อความอัตโนมัติ
รูปที่ 1: ผลการป้อนข้อความอัตโนมัติด้วยข้อมูลเข้าสู่ระบบโดยใช้รหัสผ่าน, พาสคีย์ และ ลงชื่อเข้าใช้ด้วย Google

การใช้งาน

หากต้องการใช้ Credential Manager เพื่อแสดงข้อมูลเข้าสู่ระบบในผลการป้อนข้อความอัตโนมัติ ให้ใช้ การใช้งานมาตรฐานเพื่อสร้าง 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)
)

จากนั้นเรียกใช้ API getCredential ซึ่งจะแสดงตัวเลือก Credential Manager

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)
}