ตั้งแต่ Android 15 เบต้า 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; } )