我正在寻找一种方法来检查我的用户是否已使用Google登录登录。
我支持多种日志API(Facebook,Google,自定义),所以我想构建一个静态帮助方法,如:
User.isUserLoggedIn()
使用Facebook我使用:
if AccessToken.getCurrentAccessToken() != null {
return true
}
检查用户是否通过Facebook登录。
在iOS上,我使用以下内容检查用户是否通过Google登录进行了登录:
GIDSignIn.sharedInstance().hasAuthInKeychain()
我的问题: Android上有与iOS相同的方法:
GIDSignIn.sharedInstance().hasAuthInKeychain()
?
我正在寻找一种不涉及回调的方法。
谢谢! 最大
答案 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()
}