9

GoogleAuthUtil.getToken требует, чтобы это был второй параметр объекта учетной записи, но когда вы подключаетесь к Google SignIn, в результате вы получаете результат GoogleSignInAccount - это не то же самое. Есть ли способ конвертировать GoogleSignInAccount в объект Account?Android: GoogleAuthUtil.getToken - откуда должен быть объект учетной записи?

private void handleSignInResult(GoogleSignInResult result) { 

     if (result.isSuccess()) { 

      googleSignInAccount = result.getSignInAccount(); 

     } 
    } 

потом:

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

Я знаю, что я могу получить адрес электронной почты назад, отображая accountpicker, и я также могу получить адрес электронной почты от входа в аккаунт Google результат - но я могу» t увидеть способ получения всего объекта учетной записи.

ответ

6

Используя документацию here, вы можете видеть, что ответ имеет KEY_ACCOUNT_NAME и KEY_ACCOUNT_TYPE. Таким образом, вы можете создать свой собственный Account object

Код:

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); 
      }