пользовательский getAuthToken не вызывается, когда кешированный токен аутентификации действителен, но переходит прямо к обратному вызову

Я расширил AbstractAccountAuthenticator и переопределил getAuthToken. Все работает хорошо с моим getAuthToken, за исключением случаев, когда кэшированный токен аутентификации действителен, и в этом случае AccountManagerCallback (signinCallback) вызывается без вызова моего getAuthToken. Это проблема, потому что мой getAuthToken загружает пакет возврата со специфическими данными приложения.

Это вызов менеджера по работе с клиентами, который я использую:

`signinFuture = mAM.getAuthToken(account, getApplicationContext().getString(R.string.ACCOUNT_TYPE), null, SignInFragmentActivity.this, signinCallback, null);`

Это то, что вы ожидаете, или менеджер аккаунта getAuthToken должен всегда вызывать переопределение моего аутентификатора? Что я делаю неправильно?


person Alex    schedule 26.06.2013    source источник


Ответы (1)


Немного поздно, но документирую этот ответ, так как я искал что-то подобное через поиск Google, который привел меня сюда.

Более внимательное изучение документации Android показывает, что getAuthToken должен возвращать только три набора ключей (в зависимости от результата вызова).

Правильный подход — хранить данные вашего приложения в пакете UserData, когда вы явно создаете учетную запись с помощью AccountManager и извлекаете ее, как только у вас есть действительный токен аутентификации.

См. http://developer.android.com/reference/android/accounts/AccountManager.html для дальнейшего использования.

person Jin Hian Lee    schedule 03.12.2013