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); 
}