0
我正在使用新的Google登錄對我的應用程序中的用戶進行身份驗證。我正在按照官方文檔進行集成。無法處理Google登錄中的不同錯誤場景
https://developers.google.com/identity/sign-in/android/start
我已經產生WEB_CLIENT_ID和我能夠成功登錄,用戶。 但我在處理錯誤場景時遇到問題。
我的應用程序有2個主要的錯誤情況,我想爲他們顯示不同的錯誤信息。
- 當顯示帳戶選擇器對話框,並且用戶按下後退按鈕,那麼我需要顯示「用戶已取消操作」。
- 當用戶從該帳戶對話框選擇器選擇一個帳戶,他失去了在此期間,他的互聯網連接,然後我需要表現出「有一些問題,與網絡」
我現在面臨的問題就是在這兩個操作上,google auth api都會返回狀態碼12501.因此,我無法根據api返回的狀態提供不同的錯誤消息。這是我到目前爲止嘗試過的代碼。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQ_CODE_GOOGLE) {
/* Google SignIn Callback result*/
if (data == null) {
return;
}
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result == null) {
return;
}
if (result.isSuccess()) {
// Signed in successfully, get idToken and userID.
} else {
// Login not successful.
Status status = result.getStatus();
if (status == null) {
return;
}
if (status.isCanceled()) {
//User canceled the operation
} else if (status.getStatusCode() == CommonStatusCodes.INVALID_ACCOUNT) {
//Invalid account
} else {
//Generic error
}
}
}
}
但是每次谷歌登錄失敗時,它總是進入else狀態。無法弄清楚如何爲不同類型的錯誤提供不同的錯誤消息?