Ich suche nach einer Möglichkeit, um zu überprüfen, ob sich mein Nutzer bereits mit Google Sign In angemeldet hat.
Ich unterstütze mehrere Protokollierungs-APIs (Facebook, Google, benutzerdefiniert), daher möchte ich eine statische Hilfsmethode wie die folgende erstellen: User.isUserLoggedIn()
Bei Facebook benutze ich:
if AccessToken.getCurrentAccessToken() != null {
return true
}
um zu überprüfen, ob der Benutzer über Facebook angemeldet ist.
Unter iOS nutze ich Folgendes, um zu überprüfen, ob der Benutzer über Google Sign In angemeldet ist:
GIDSignIn.sharedInstance().hasAuthInKeychain()
Meine Frage: Gibt es eine Entsprechung auf Android zur iOS-Methode:
GIDSignIn.sharedInstance().hasAuthInKeychain()
?
Ich suche nach einer Methode, die keinen Rückruf beinhaltet.
Vielen Dank! Max
Sie können diese Funktion verwenden
private boolean isSignedIn() {
return GoogleSignIn.getLastSignedInAccount(context) != null;
}
https://developers.google.com/Android/reference/com/google/Android/gms/auth/api/signin/GoogleSignIn
public static GoogleSignInAccount getLastSignedInAccount (Kontextkontext)
Ruft das letzte Konto ab, mit dem sich der Benutzer angemeldet hat.
Returns: GoogleSignInAccount von der letzten bekannten erfolgreichen Anmeldung. Ob Benutzer hat sich noch nie angemeldet oder hat den Zugriff abgemeldet/widerrufen, null wird zurückgegeben.
Werfen Sie einen Blick auf die Android-Anmeldedokumentation :
Um zu überprüfen, ob der Benutzer angemeldet ist, rufen Sie isConnected()
auf:
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.
// ...
}
In Kotlin implementiert und Anko verwenden:
val googleSignInAccount = GoogleSignIn.getLastSignedInAccount(act)
if (googleSignInAccount != null) {
getGoogleSignInClient().signOut()
}