我正在使用谷歌登录进行身份验证。
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();
on onConnected回调,我正在启动下一个活动。
@Override
public void onConnected(@Nullable Bundle bundle) {
GlobalUtils.googleApiClient = mGoogleApiClient;
launchNextActivity();
}
我在GlobalUtils中保存对mGoogleApiClient的引用,以便用户注销实现更容易。以下是我的logoutUser方法。
public static void logOutUser() {
// Google logout
if (googleApiClient != null && googleApiClient.isConnected()) {
Auth.GoogleSignInApi.signOut(googleApiClient);
}
googleApiClient = null;
}
但问题是,一旦我离开登录活动,googleApiClient.isConnected()总是返回false。我确保在用户输入应用程序主要活动之前始终调用googleApiClient.connect()。
我做错了什么?
答案 0 :(得分:-3)
我认为问题是你没有连接google api客户端。每当您使用google api时尝试连接,并在不再使用时断开连接。希望这有帮助。