getAuthToken() в AccountManager всегда возвращает null
Внутри метода getAuthToken через peekAuthToken() получаю токен. Но возвращает в итоге метод почему-то null.
@Override
public Bundle getAuthToken(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) throws NetworkErrorException {
final AccountManager am = AccountManager.get(mContext);
String myToken = am.peekAuthToken(account, authTokenType);
System.out.println(myToken); // ВСЁ НОРМАЛЬНО <———-
final Bundle result = new Bundle();
result.putString(AccountManager.KEY_AUTHTOKEN, storeToken);
return result;
}
Вызов:
AccountManager accountManager = AccountManager.get(this);
Account account = accountManager.getAccountsByType("com.mypp")[0];
AccountManagerFuture<Bundle> future = accountManager.getAuthToken(account, "access", null, this, null, null);
Thread getToken = new Thread(() -> {
try {
String token = future.getResult(30, TimeUnit.SECONDS).getString(AccountManager.KEY_AUTHTOKEN);
System.out.println(token); // NULL. <———-
} catch (AuthenticatorException | IOException | OperationCanceledException e) {
System.out.println(e.getMessage());
}
});
getToken.start();
getToken.interrupt();
Проблемы начались после того, как в конфигурации аутенфикатора было указано android:customTokens="true". До этого мой override игнорировался. Но «из коробочки» токен с этим кодом вызова выдавал исправно.