1

我正在使用谷歌登錄進行身份驗證。mGoogleApiClient.isConnected即使在mGoogleApiClient.connect後也會返回false

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
     .requestEmail() 
     .requestProfile() 
     .build(); 

mGoogleApiClient = new GoogleApiClient.Builder(this) 
     .enableAutoManage(this, this) 
     .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
     .addConnectionCallbacks(this) 
     .addOnConnectionFailedListener(this) 
     .build(); 

每當用戶啓動我檢查會話是否仍然可用的應用程序。

if (isGoogleSignedIn()) { 
    mGoogleApiClient.connect(); 

onConnected回調,我啓動下一個活動。

@Override 
public void onConnected(@Nullable Bundle bundle) { 
    GlobalUtils.googleApiClient = mGoogleApiClient; 
    launchNextActivity(); 
} 

我保存參考mGoogleApiClient我GlobalUtils使用戶登出實現更容易。以下是我的logoutUser方法。

public static void logOutUser() { 

    // Google logout 
    if (googleApiClient != null && googleApiClient.isConnected()) { 
     Auth.GoogleSignInApi.signOut(googleApiClient); 
    } 

    googleApiClient = null; 
} 

但這裏的問題是,googleApiClient.isConnected()總是隻要我離開登錄活動返回false。我確保在用戶輸入應用程序主要活動之前始終調用googleApiClient.connect()。

我在做什麼錯?

+0

第一個活動不會在其中一個生命週期事件中調用'disconnect'嗎?例如在'onPause'或'onStop'上 – Ryan

+0

不,它不會斷開連接。 – jay

+0

您確定只能創建mGoogleApiClient的一個實例嗎? –

回答

-2

我認爲問題是你沒有連接谷歌API客戶端。嘗試連接,只要你使用谷歌API,並斷開,當你不再使用。希望這個幫助。

相關問題