簡體   English   中英

Android上的Google登錄-由於未登錄而無法登錄

[英]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() ,則可以按照說明手動管理連接,包括提供ConnectionCallbacksOnConnectionFailedListener的實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM