9

GoogleAuthUtil.getToken erfordert für seinen zweiten Parameter ein Kontoobjekt, aber wenn Sie sich mit Google SignIn verbinden, erhalten Sie im Ergebnis ein GoogleSignInAccount zurück - was nicht das Gleiche ist. Gibt es eine Möglichkeit, GoogleSignInAccount in ein Account-Objekt zu konvertieren? späterAndroid: GoogleAuthUtil.getToken - Woher soll das Kontoobjekt kommen?

private void handleSignInResult(GoogleSignInResult result) { 

     if (result.isSuccess()) { 

      googleSignInAccount = result.getSignInAccount(); 

     } 
    } 

dann:

authToken = GoogleAuthUtil.getToken(context, [need an account here], scope); 

Ich weiß, dass ich die E-Mail-Adresse bekommen kann wieder durch die accountpicker Anzeige, und ich kann auch die E-Mail-Adresse aus der Google-signin führen - aber ich kann‘ t eine Möglichkeit sehen, das gesamte Kontoobjekt abzurufen.

Antwort

6

Mithilfe der Dokumentation here können Sie sehen, dass die Antwort KEY_ACCOUNT_NAME und KEY_ACCOUNT_TYPE hat. Daher können Sie Ihre eigenen Account object

-Code erstellen:

if (requestCode == REQUEST_CODE_PICK_ACCOUNT) { 
      // Receiving a result from the AccountPicker 
      if (resultCode == RESULT_OK) { 
       mEmail = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); 
       mType = data.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE); 
       // With the account name acquired, go get the auth token 
       Account account = new Account(mEmail, mType); 
       String token = GoogleAuthUtil.getToken(context, account, mScope); 
      }