当我点击第一次在谷歌登录时,它询问我当多于1 a] c时,选择哪个\ c。但第二次没有问,它原先登录以前选择了一个\ c。
我如何能够始终显示\ c选择
mGoogleApiClient = new GoogleApiClient.Builder(context)
.enableAutoManage((FragmentActivity) context, new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
})
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
我厌倦了mGoogleApiClient.clearDefaultAccountAndReconnect(); 但它给我崩溃,因为客户端没有连接
答案 0 :(得分:1)
You will have to use the revoke access callback.
googleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(LoginActivity.this , this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.addApi(AppIndex.API).build();
在登录按钮上单击
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
startActivityForResult(signInIntent, 100);
OnActivityResult
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
现在你创建一个函数handleSignInResult(result)
并使用user提供的信息。因为在回调中,访问将被撤销。
所以,你在这里获得信息并做你想做的事。
将此回调添加到您的googleApiCLient
googleApiClient.registerConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected(@Nullable Bundle bundle) {
if (googleApiClient.isConnected()) {
Auth.GoogleSignInApi.revokeAccess(googleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
Log.e("getOut",status.toString());
}
});
}
}
@Override
public void onConnectionSuspended(int i) {
}
});
此回叫将撤消所有帐户的访问权限,并会显示每次选择gmail帐户的对话框。
希望这会对你有所帮助。