10

GoogleAuthUtil.getToken には 2 番目のパラメーターとしてアカウント オブジェクトが必要ですが、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 サインインの結果からメール アドレスを取得することもできますが、アカウント オブジェクト全体を取得する方法がわかりません。

4

1 に答える 1

7

こちらのドキュメントを使用すると、応答に 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);
            } 
于 2016-01-03T01:52:06.053 に答える