2

背景谷歌加登錄帳號選擇對話框問題

我使用谷歌加的OAuth在我的應用程序一起火力地堡。當用戶點擊按鈕的符號,並顯示帳戶選擇對話框,並且用戶選擇的特定帳戶的選擇和標誌英寸

問題

假設用戶在該設備中,A兩個帳戶和B.最初,他選擇帳戶A登錄,然後使用該應用程序,然後決定退出。現在,他再次點擊按鈕的跡象,但賬號選擇對話框不會出現,它會自動在標誌使用先前選擇的帳戶A.

我想

我希望用戶每次都會顯示賬戶選擇對話框,並且會給他們一個選擇其他賬戶的機會(如果他們願意的話)。

CODE

下面是我如何使用谷歌API客戶端的註冊一小段代碼。

String mClientId = parcel.getProviderExtra().getString(CLIENT_ID_KEY); 
     GoogleSignInOptions googleSignInOptions; 

     googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
       .requestIdToken(mClientId) 
       .requestEmail() 
       .build(); 

     mGoogleApiClient = new GoogleApiClient.Builder(activity) 
       .addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions) 
       .build(); 

     mGoogleApiClient.connect(); 

並註銷,

Auth.GoogleSignInApi.signOut(mGoogleApiClient); 

任何幫助將不勝感激。

+0

您可以在mGoogleApiClient.connect()之前註銷用戶。與應用程序。條件 –

+0

註銷API不起作用。該對話框在用戶註銷時不顯示。唯一的方法是清除數據,清除它存儲的一些偏好,然後對話框再次出現。 –

回答

1

得到這個在每次結算的默認帳戶號前解決。

@Override 
    public void startLogin(Activity activity, String mEmail) { 
     Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
     /** 
     * Clearing default account every time so that the account picker dialog can be enforced 
     */ 
     if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) { 
      mGoogleApiClient.clearDefaultAccountAndReconnect(); 
     } 
     activity.startActivityForResult(signInIntent, RC_SIGN_IN); 
    } 

這將強制出現每次對話框。

0

每次用戶登錄時,都要使用下面的方法清除默認帳戶。

private void signIn() { 
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 

    if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) { 

     mGoogleApiClient.clearDefaultAccountAndReconnect(); 
    } 
    startActivityForResult(signInIntent, RC_SIGN_IN); 
}