2014-11-16 102 views
0

Android:

我正在使用GoogleApiClient類訪問Plus API,以便登錄用戶的Google帳戶。我已閱讀來自開發者網站上的文檔,我使用此代碼登錄甌用戶無法註銷Google+

private void signOutFromGplus() //Sign out from Google 
{ 
    if (mGoogleApiClient.isConnected()) 
    { 
     Plus.AccountApi.clearDefaultAccount(mGoogleApiClient); 
     Plus.AccountApi.revokeAccessAndDisconnect(mGoogleApiClient) 
       .setResultCallback(new ResultCallback<Status>() 
       { 
        @Override 
        public void onResult(Status status) 
        { 
         id.setText("User Disconnected"); 
        } 
       }); 
    } 
} 

呀,撤銷訪問太多,但它仍然無法正常工作。 我應該如何斷開用戶連接?

+0

「不工作」是什麼樣的? –

+2

只用'mGoogleApiClient.clearDefaultAccount(); mGoogleApiClient.disconnect();' –

回答

1

您可以使用此:

if (mGoogleApiClient.isConnected()) 
{ 
    mGoogleApiClient.clearDefaultAccount(); 
    mGoogleApiClient.disconnect(); 
} 

不需要的revokeAccessAndDisconnect()。你錯過了disconnect的電話,因爲它仍然與舊數據連接,我想。

希望這會有所幫助。

+1

謝謝,它的工作! –

1
private void signOutFromGplus() { 

    if (!mGoogleApiClient.isConnected()) { 
     return; 
    } 

    // Clear the default account as in the Sign Out. 
    Plus.AccountApi.clearDefaultAccount(mGoogleApiClient); 

    // Revoke access to this entire application. This will call back 
    // to onAccessRevoked when it is complete, as it needs to reach 
    // the Google authentication servers to revoke all tokens. 
    ResultCallback<Status> onAccessRevoked = new ResultCallback<Status>() { 
     @Override 
     public void onResult(Status status) { 
      mGoogleApiClient.disconnect(); 
      updateConnectButtonState(); 
      onPlusClientRevokeAccess(); 
     } 
    }; 

    Plus.AccountApi 
      .revokeAccessAndDisconnect(mGoogleApiClient) 
      .setResultCallback(onAccessRevoked); 

} 
+0

正是我需要的感謝。 –