Je recherche un moyen de vérifier si mon utilisateur est déjà connecté à Google Sign In.
Je supporte plusieurs API de journalisation (Facebook, Google, personnalisée), je souhaite donc créer une méthode d'assistance statique telle que: User.isUserLoggedIn()
Avec Facebook j'utilise:
if AccessToken.getCurrentAccessToken() != null {
return true
}
pour vérifier si l'utilisateur est connecté via Facebook.
Sur iOS, j'utilise les éléments suivants pour vérifier si l'utilisateur est connecté via Google Sign In:
GIDSignIn.sharedInstance().hasAuthInKeychain()
Ma question: Existe-t-il un équivalent sur Android de la méthode iOS:
GIDSignIn.sharedInstance().hasAuthInKeychain()
?
Je recherche une méthode qui n’implique pas de rappel.
Merci! Max
Vous pouvez utiliser cette fonction
private boolean isSignedIn() {
return GoogleSignIn.getLastSignedInAccount(context) != null;
}
https://developers.google.com/Android/reference/com/google/Android/gms/auth/api/signin/GoogleSignIn
public statique GoogleSignInAccount getLastSignedInAccount (contexte de contexte)
Obtient le dernier compte avec lequel l'utilisateur s'est connecté.
Retours: GoogleSignInAccount à partir de la dernière connexion réussie connue. Si l'utilisateur ne s'est jamais connecté auparavant ou a déconnecté/révoqué l'accès, null est retourné.
Consultez la documentation de connexion Android :
Pour vérifier si l'utilisateur est connecté, appelez 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.
// ...
}
Implémenté dans Kotlin, et en utilisant Anko:
val googleSignInAccount = GoogleSignIn.getLastSignedInAccount(act)
if (googleSignInAccount != null) {
getGoogleSignInClient().signOut()
}