[英]Google SignIn on Android - Log out does not work since not logged in
我已通過本指南( https://developers.google.com/identity/sign-in/android/start-integrating )集成了Google SignIn。
我已經完成了這樣的設置:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestIdToken(AppActivity.this.getResources().getString(R.string.server_client_id))
.build();
GoogleSignIn.googleApiClient = new GoogleApiClient.Builder(this)
.addOnConnectionFailedListener(this)
.addConnectionCallbacks(this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
使用以下代碼登錄即可正常運行:
public static void loginGoogleSDK()
{
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
GameApplication.getActivity().startActivityForResult(signInIntent, RC_SIGN_IN);
}
出現登錄覆蓋,我選擇一個帳戶並登錄。一切正常。
然后,在本指南( https://developers.google.com/identity/sign-in/android/disconnect )之后,我嘗試使用以下代碼調用注銷,但是我始終收到錯誤消息: 無法注銷,因為未記錄在 。
Auth.GoogleSignInApi.signOut(googleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
System.out.println("Google SDK Sign Out Access Status:" + status);
}
});
奇怪的是,如果我再次調用登錄名,它將自動成功,並且我無法再次選擇帳戶。 因此,登錄仍處於活動狀態,我無法注銷。
根據enableAutoManage文檔 ,包括:
在支持庫FragmentActivity中啟用自動生命周期管理,該庫在
onStart()
中連接客戶端,並在onStop()
斷開客戶端連接。如果
ConnectionResult
沒有解決方案,它將適當地處理用戶可恢復的錯誤,並在unresolvedConnectionFailedListener
上調用onConnectionFailed(ConnectionResult)
。 這消除了與使用GoogleApiClient
相關的大多數GoogleApiClient
。
通過不像“ 添加登錄”指南那樣包含enableAutoManage()
,您的GoogleApiClient
永遠不會真正連接,從而導致您遇到的錯誤。
如果不想使用enableAutoManage()
,則可以按照說明手動管理連接,包括提供ConnectionCallbacks
和OnConnectionFailedListener
的實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.