Android setAuthToken не работает в первый раз

Я сохраняю свою учетную запись приложения на Android с помощью AccountManager и хочу сохранить токен аутентификации на устройстве. Моя учетная запись приложения добавляется каждый раз, когда я вхожу в систему и выполняю addAccountExplicitly, но setAuthToken не работает, пока я не войду еще раз и снова не setAuthToken. Ниже мой код для добавления учетной записи и настройки authToken

String accountName = authIntent.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
String accountType = authIntent.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE);
String accountPass = authIntent.getStringExtra(Constants.ACCOUNT_PASS);
String accntAuthToken = authIntent.getStringExtra(AccountManager.KEY_AUTHTOKEN);

Account resilincAccount = new Account(accountName, Constants.ACCOUNT_TYPE);
AccountManager mAccountManager = AccountManager.get(getApplicationContext());

boolean accountAdded = mAccountManager.addAccountExplicitly(resilincAccount, accountPass, null);
mAccountManager.setAuthToken(resilincAccount, Constants.ACCOUNT_TYPE, accntAuthToken);
mAccountManager.addOnAccountsUpdatedListener(this, null, true);
setAccountAuthenticatorResult(authIntent.getExtras());
setResult(RESULT_OK, authIntent);

Кто-нибудь знает, почему мне нужно войти в систему два раза, чтобы сохранить мой authToken в AccountManager?


person Aniruddh Ambarkar    schedule 28.09.2015    source источник


Ответы (1)


Пакет, который вы передаете setAccountAuthenticatorResult, должен содержать следующие свойства:

res.putExtra(AccountManager.KEY_ACCOUNT_TYPE, <account_type>);
res.putExtra(AccountManager.KEY_ACCOUNT_NAME, <user_id>);
res.putExtra(AccountManager.KEY_AUTHTOKEN, <auth_token>);
person ffleandro    schedule 30.03.2017