Android:GoogleAuthUtil.getToken – 帐户对象应该从哪里来?

GoogleAuthUtil.getToken要求为它的第二个参数一个帐户对象,但是当你连接到Google SignIn时,你得到的结果是一个GoogleSignInAccount – 这不是一回事。 有没有办法将GoogleSignInAccount转换为Account对象?

private void handleSignInResult(GoogleSignInResult result) { if (result.isSuccess()) { googleSignInAccount = result.getSignInAccount(); } } 

那么稍后:

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

我知道我可以通过显示accountpicker来获取电子邮件地址,也可以从Googlelogin结果中获取电子邮件地址 – 但是我看不到一个获取整个帐户对象的方法。

使用这里的文档你可以看到响应有KEY_ACCOUNT_NAME和KEY_ACCOUNT_TYPE。 因此您可以创build自己的Account对象

码:

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