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来获取电子邮件地址,我也可以从google登录结果中获取电子邮件地址 - 但我看不到获取整个帐户对象的方法.
使用此处的文档,您可以看到回复包含KEY_ACCOUNT_NAME和KEY_ACCOUNT_TYPE.因此,您可以创建自己的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); }