ตั้งแต่ Android 15 Beta 2 เป็นต้นไป เมื่อใช้ร่วมกับ androidx.credentials:1.5.0-alpha01 นักพัฒนาแอปจะลิงก์มุมมองที่เฉพาะเจาะจง เช่น ช่องชื่อผู้ใช้หรือรหัสผ่านกับคำขอของเครื่องมือจัดการข้อมูลเข้าสู่ระบบได้ เมื่อผู้ใช้โฟกัสที่มุมมองใดมุมมองหนึ่งเหล่านี้ ระบบจะส่งคําขอที่เกี่ยวข้องไปยังเครื่องมือจัดการข้อมูลเข้าสู่ระบบ ระบบจะรวบรวมข้อมูลเข้าสู่ระบบที่ได้จากผู้ให้บริการต่างๆ และแสดงใน UI การป้อนข้อความอัตโนมัติ เช่น คำแนะนำในบรรทัดของแป้นพิมพ์หรือคำแนะนำในเมนูแบบเลื่อนลง ฟีเจอร์นี้สามารถใช้เป็นทางเลือกสำรองเมื่อผู้ใช้ปิดตัวเลือกบัญชีเครื่องมือจัดการข้อมูลเข้าสู่ระบบโดยไม่ตั้งใจ แล้วแตะช่องที่เกี่ยวข้อง
ไลบรารี Jetpack androidx.credentials เป็นปลายทางที่นักพัฒนาแอปควรใช้สำหรับฟีเจอร์นี้
รูปที่ 1: ป้อนข้อความอัตโนมัติสำหรับผลลัพธ์ด้วยข้อมูลเข้าสู่ระบบโดยใช้รหัสผ่าน พาสคีย์ และฟีเจอร์ลงชื่อเข้าใช้ด้วย Google
การใช้งาน
หากต้องการใช้เครื่องมือจัดการข้อมูลเข้าสู่ระบบเพื่อแสดงข้อมูลเข้าสู่ระบบในผลการป้อนข้อความอัตโนมัติ ให้ใช้การใช้งานมาตรฐานเพื่อสร้าง GetCredentialRequest
แล้วตั้งค่าให้กับมุมมองที่เกี่ยวข้อง การจัดการการตอบกลับจะเหมือนกัน ไม่ว่าจะมาจากการเรียก getCredential
API หรือ PendingGetCredentialRequest
ก็ตาม ดังที่แสดงในตัวอย่างต่อไปนี้
ก่อนอื่น ให้สร้าง 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) );
จากนั้นเรียกใช้ getCredential
API ซึ่งจะแสดงตัวเลือกเครื่องมือจัดการข้อมูลเข้าสู่ระบบ
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); } } });
สุดท้าย ให้เปิดใช้ประสบการณ์การป้อนข้อความอัตโนมัติ ตั้งค่า getCredRequest
เป็นมุมมองที่เกี่ยวข้อง (เช่น username, password
) เพื่อเปิดใช้ผลลัพธ์ข้อมูลเข้าสู่ระบบในการป้อนข้อความอัตโนมัติเมื่อผู้ใช้โต้ตอบกับมุมมองเหล่านี้
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; } )