2015-09-28 6 views
3

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

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?

ответ

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>); 
+0

Благодаря своей работы в настоящее время –