Android Google登录:检查用户是否已登录

时间:2016-07-04 18:10:08

标签: android google-signin

我正在寻找一种方法来检查我的用户是否已使用Google登录登录。

我支持多种日志API(Facebook,Google,自定义),所以我想构建一个静态帮助方法,如:  User.isUserLoggedIn()

使用Facebook我使用:

if AccessToken.getCurrentAccessToken() != null { 
   return true
} 

检查用户是否通过Facebook登录。

在iOS上,我使用以下内容检查用户是否通过Google登录进行了登录:

GIDSignIn.sharedInstance().hasAuthInKeychain()

我的问题: Android上有与iOS相同的方法:

GIDSignIn.sharedInstance().hasAuthInKeychain()

我正在寻找一种不涉及回调的方法。

谢谢! 最大

3 个答案:

答案 0 :(得分:8)

您可以使用此功能

private boolean isSignedIn() {
  return GoogleSignIn.getLastSignedInAccount(context) != null;
}

https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignIn

  

公共静态GoogleSignInAccount getLastSignedInAccount(上下文关联)

     

获取用户使用的最后一个帐户。

     

返回:GoogleSignInAccount来自上次已知的成功登录。如果   用户之前从未登录过或已注销/撤销访问权限,   返回null。

答案 1 :(得分:7)

看看the Android sign-in documentation

要检查用户是否已登录,请致电isConnected()

if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) {
   // signed in. Show the "sign out" button and explanation.
   // ...
} else {
   // not signed in. Show the "sign in" button and explanation.
   // ...
}

答案 2 :(得分:1)

在Kotlin中实施,并使用Anko:

    val googleSignInAccount = GoogleSignIn.getLastSignedInAccount(act)
    if (googleSignInAccount != null) {
        getGoogleSignInClient().signOut()
    }