要將Smart Lock for Passwords集成到您的Android應用中,您必須將對憑據API的調用添加到應用的啟動和登錄流程中。下圖顯示了使用Smart Lock設置密碼的典型Android應用的流程。
儘管有很多方法可以成功地集成Smart Lock for Passwords,並且集成的細節取決於應用程序的結構和用戶體驗,但是對於大多數應用程序,建議遵循以下流程。使用此流程的應用程序具有以下用戶體驗優勢:
- 保存了單個憑據的現有服務用戶將立即登錄,打開應用程序後,他們將直接進入登錄視圖。
- 保存了多個憑據的用戶或禁用自動登錄的用戶在進入應用程序的登錄視圖之前只需要響應一個對話框即可。
- 沒有保存的憑據或尚未註冊的用戶可以單擊一下以選擇其名稱和電子郵件,然後智能地發送到登錄或註冊視圖,並預先填寫此信息。
- 用戶註銷後,該應用程序可確保不會自動重新登錄。
檢索憑證
- 應用啟動時,如果尚未登錄任何用戶,請調用
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)
獲得登錄提示。 - 如果提示的用戶ID與現有用戶匹配,則用它預先填寫登錄表單,然後讓用戶輸入密碼進行登錄。
- 如果提示的用戶ID與現有用戶不匹配,請使用用戶的ID和名稱預先填寫註冊表單,然後讓用戶創建一個新帳戶。
- 調用
用戶成功登錄或創建帳戶後,請使用
CredentialsClient.save()
保存用戶ID和密碼。如果用戶使用諸如Google登錄之類的聯合身份提供者登錄,請使用用戶的電子郵件地址作為ID創建
Credential
對象,並使用setAccountType
指定身份提供者。
登出
- 用戶註銷後,請調用
CredentialsClient.disableAutoSignIn()
以防止用戶立即重新登錄。禁用自動登錄還可以使用戶輕鬆地在帳戶之間進行切換,例如,在工作帳戶和個人帳戶之間,或在帳戶之間進行切換在共享設備上-無需重新輸入其登錄信息。
準備將Smart Lock for Passwords集成到您的應用程序中了嗎?開始吧。