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

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

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

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

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

1 ответ

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

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

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

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

Другие вопросы по тегам