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

Android Google登录:检查用户是否已登录,android,google-signin,Android,Google Signin,我正在寻找一种方法来检查我的用户是否已经登录谷歌登录 我支持几个日志API(Facebook、Google、custom),因此我想构建一个静态助手方法,如: User.isUserLoggedIn() 在Facebook上,我使用: if AccessToken.getCurrentAccessToken() != null { return true } 检查用户是否通过Facebook登录 在iOS上,我使用以下命令检查用户是否通过Google登录: GIDSignIn.sha

我正在寻找一种方法来检查我的用户是否已经登录谷歌登录

我支持几个日志API(Facebook、Google、custom),因此我想构建一个静态助手方法,如:
User.isUserLoggedIn()

在Facebook上,我使用:

if AccessToken.getCurrentAccessToken() != null { 
   return true
} 
检查用户是否通过Facebook登录

在iOS上,我使用以下命令检查用户是否通过Google登录:

GIDSignIn.sharedInstance().hasAuthInKeychain()
我的问题: Android上是否有类似于iOS的方法:

GIDSignIn.sharedInstance().hasAuthInKeychain()

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

谢谢! Max

看看:

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


在Kotlin中实施,并使用Anko:

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

你可以使用这个功能

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

公共静态GoogleSignInAccount GetLastSignedAccount(上下文上下文)

获取用户登录的最后一个帐户

返回:谷歌登录上次成功登录的次数。如果 用户以前从未登录,或已注销/撤销访问权限, 返回null


当用户登录时,使用Shared Prefrence执行此操作使布尔值为真并在创建时检查布尔值是否为真可能会有用您检查用户是否已登录是一回事,但例如,如果用户在google web(myaccount.google.com/permissions)上手动从其google帐户删除您的应用程序,isSignedIn功能仍然显示您已登录,因为您已登录,但您无法在应用程序内使用google执行任何操作,因为该应用程序已手动从您的帐户中删除。因此,您还应该检查GoogleSignIn.hasPermissions()无法解析
mGoogleSignInClient.isConnected()
private boolean isSignedIn() {
  return GoogleSignIn.getLastSignedInAccount(context) != null;
}