หากต้องการผสานรวม Smart Lock สำหรับรหัสผ่านลงในแอป Android คุณต้องเพิ่มการเรียก Credentials API ไปยังขั้นตอนการเริ่มต้นและการลงชื่อเข้าใช้ของแอป แผนภาพต่อไปนี้แสดงการทำงานของแอป Android ทั่วไปที่ใช้ Smart Lock สำหรับรหัสผ่าน
แม้ว่าจะมีหลายวิธีในการผสานรวม Smart Lock สำหรับรหัสผ่านให้สำเร็จ แต่ข้อมูลจำเพาะของการผสานรวมจะขึ้นอยู่กับโครงสร้างและประสบการณ์ของผู้ใช้แอป แต่เราขอแนะนำให้แอปส่วนใหญ่ใช้ขั้นตอนต่อไปนี้ แอปที่ใช้ขั้นตอนนี้มีข้อได้เปรียบด้านประสบการณ์ของผู้ใช้ดังต่อไปนี้
- ผู้ใช้บริการที่มีอยู่ซึ่งบันทึกข้อมูลเข้าสู่ระบบไว้รายการเดียวจะลงชื่อเข้าใช้ทันทีและไปยังมุมมองที่ลงชื่อเข้าใช้โดยตรงเมื่อเปิดแอป
- ผู้ใช้ที่ได้บันทึกข้อมูลเข้าสู่ระบบไว้หลายรายการหรือที่ปิดการลงชื่อเข้าใช้โดยอัตโนมัติไว้ต้องตอบกล่องโต้ตอบเพียงกล่องโต้ตอบเดียวก่อนที่จะไปที่มุมมองการลงชื่อเข้าใช้ของแอป
- ผู้ใช้ที่ไม่มีข้อมูลเข้าสู่ระบบที่บันทึกไว้หรือยังไม่ได้ลงชื่อสมัครใช้สามารถเลือกชื่อและอีเมลได้ด้วยการแตะเพียงครั้งเดียว และระบบจะส่งข้อมูลนี้ไปยังมุมมองการลงชื่อเข้าใช้หรือการลงชื่อสมัครใช้อย่างชาญฉลาดโดยกรอกข้อมูลนี้ไว้ล่วงหน้า
- เมื่อผู้ใช้ออกจากระบบ แอปจะตรวจสอบให้แน่ใจว่าไม่ได้ลงชื่อเข้าใช้อีกครั้งโดยอัตโนมัติ
เรียกข้อมูลเข้าสู่ระบบ
- เมื่อแอปเริ่มทำงาน หากยังไม่มีผู้ใช้ที่ลงชื่อเข้าใช้ โปรดโทรหา
CredentialsClient.request()
- หาก
Task
เสร็จสมบูรณ์ ให้รับข้อมูลเข้าสู่ระบบของผู้ใช้ด้วยgetResult().getCredential()
และใช้เพื่อลงชื่อเข้าใช้ - หาก
Task
ล้มเหลวและข้อยกเว้นเป็นอินสแตนซ์ของResolvableApiException
และgetStatusCode()
แสดงผลRESOLUTION_REQUIRED
คุณต้องระบุอินพุตของผู้ใช้เพื่อเลือกข้อมูลเข้าสู่ระบบ เรียกใช้startResolutionForResult()
เพื่อแจ้งให้ผู้ใช้เลือกบัญชีที่บันทึกไว้ จากนั้นเรียกใช้getParcelableExtra(Credential.EXTRA_KEY)
เพื่อรับข้อมูลเข้าสู่ระบบของผู้ใช้และใช้เพื่อลงชื่อเข้าใช้
บันทึกข้อมูลเข้าสู่ระบบ
หาก
Task
ล้มเหลวโดยมีApiException
และgetStatusCode()
แสดงผลSIGN_IN_REQUIRED
ผู้ใช้จะไม่มีข้อมูลเข้าสู่ระบบที่บันทึกไว้และต้องลงชื่อเข้าใช้หรือลงชื่อสมัครใช้ด้วยตนเองโดยใช้ขั้นตอนการลงชื่อเข้าใช้หรือลงชื่อสมัครใช้ปัจจุบัน หลังจากที่ผู้ใช้ลงชื่อเข้าใช้สำเร็จแล้ว คุณอาจให้โอกาสผู้ใช้บันทึกข้อมูลเข้าสู่ระบบสำหรับการเรียกข้อมูลในอนาคต (ขั้นตอนที่ 5)คุณช่วยให้ผู้ใช้ลงชื่อเข้าใช้หรือลงชื่อสมัครใช้ได้เร็วและง่ายขึ้นได้โดยดึงคำแนะนำในการลงชื่อเข้าใช้ เช่น อีเมลของผู้ใช้ ผู้ใช้เลือกคำแนะนำและข้ามการพิมพ์ข้อมูลเข้าสู่ระบบได้ หากแอปกำหนดให้ผู้ใช้ลงชื่อเข้าใช้ คุณอาจเลือกเรียกข้อมูลคำแนะนำได้ทันทีหลังจากที่คำขอข้อมูลเข้าสู่ระบบเริ่มต้นล้มเหลว (หรือจะรอจนกระทั่งผู้ใช้เริ่มขั้นตอนการลงชื่อเข้าใช้หรือลงชื่อสมัครใช้ก็ได้)
- เรียกใช้
CredentialsClient.getHintPickerIntent()
และเริ่มต้น ความตั้งใจเพื่อแจ้งให้ผู้ใช้เลือกบัญชี แล้วโทรไปที่getParcelableExtra(Credential.EXTRA_KEY)
เพื่อรับ คำแนะนำในการลงชื่อเข้าใช้ - หากรหัสผู้ใช้ของคำแนะนำตรงกับผู้ใช้ที่มีอยู่ ให้ป้อน แบบฟอร์มลงชื่อเข้าใช้ล่วงหน้าและให้ผู้ใช้ป้อนรหัสผ่านเพื่อลงชื่อเข้าใช้
- หากรหัสผู้ใช้ของคำแนะนำไม่ตรงกับผู้ใช้ที่มีอยู่ ให้กรอกแบบฟอร์มลงชื่อสมัครใช้ล่วงหน้าด้วยรหัสและชื่อผู้ใช้ แล้วให้ผู้ใช้สร้างบัญชีใหม่
- เรียกใช้
-
หลังจากที่ผู้ใช้ลงชื่อเข้าใช้หรือสร้างบัญชีสำเร็จแล้ว ให้บันทึกรหัสผู้ใช้และรหัสผ่านด้วย
CredentialsClient.save()
หากผู้ใช้ลงชื่อเข้าใช้ด้วยผู้ให้บริการข้อมูลประจำตัวแบบรวมศูนย์ เช่น Google Sign-In ให้สร้างออบเจ็กต์
Credential
โดยใช้อีเมลของผู้ใช้เป็นรหัสและระบุผู้ให้บริการข้อมูลประจำตัวด้วยsetAccountType
ออกจากระบบ
- เมื่อผู้ใช้ออกจากระบบ ให้โทรหา
CredentialsClient.disableAutoSignIn()
เพื่อป้องกันไม่ให้ผู้ใช้ลงชื่อเข้าใช้อีกครั้งในทันที การปิดใช้การลงชื่อเข้าใช้อัตโนมัติยังช่วยให้ผู้ใช้สลับไปมาระหว่างบัญชีได้ง่ายๆ เช่น ระหว่างบัญชีที่ทำงานกับบัญชีส่วนตัว หรือระหว่างบัญชีในอุปกรณ์ที่ใช้ร่วมกัน โดยไม่ต้องป้อนข้อมูลการลงชื่อเข้าใช้อีกครั้ง
พร้อมที่จะผสานรวม Smart Lock สำหรับรหัสผ่านในแอปของคุณแล้วหรือยัง มาเริ่มต้นกันเลย