webentwicklung-frage-antwort-db.com.de

Android Google Anmelden: Überprüfen Sie, ob der Benutzer angemeldet ist

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

16
Maxence Duthoo

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.

7
Linh

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.
   // ...
}
7
Dopaz

In Kotlin implementiert und Anko verwenden:

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