Android: вызов AccountManager.getAuthToken из службы - PullRequest
2 голосов
/ 05 мая 2011

Я делаю простой REST-клиент в Android: я создал службу, которая отвечает за вызовы REST, но для работы требуются имя пользователя и пароль. Имя пользователя и пароль хранятся в обычном реестре учетных записей, поэтому я хочу получить в сервисе имя пользователя и токен авторизации.

Проблема в том, что getAuthToken хочет иметь Activity в качестве параметра, но пока я в сервисе, у меня нет никакого типа Activity для передачи. Есть ли известный способ решения этой проблемы? Или я все делаю неправильно, и я даже не должен пытаться получить доступ к этим данным из службы?

1 Ответ

2 голосов
/ 05 мая 2011

Не обязательно: я использовал http://developer.android.com/reference/android/accounts/AccountManager.html#getAuthToken%28android.accounts.Account,%20java.lang.String,%20boolean,%20android.accounts.AccountManagerCallback%3Candroid.os.Bundle%3E,%20android.os.Handler%29 ранее изнутри Сервиса.

РЕДАКТИРОВАТЬ: Мир изменился.Теперь рекомендуется использовать this .Вам просто нужно, чтобы ваше приложение зарегистрировало IntentReceiver для LOGIN_ACCOUNTS_CHANGED_ACTION, и тогда вы получите это намерение всякий раз, когда пользователь вводит пароль.Вы явно не ждете результата: вы либо получаете его немедленно, если они уже вошли в систему, либо вам говорят, что вам нужно подождать намерения.

...