Почему AccountManager.invalidateAuthToken требует AccountType вместо AccountName? - PullRequest
5 голосов
/ 08 января 2012

При аннулировании авторизованных токенов из AccountManager с использованием invalidateAuthToken,

Q1: почему для функции требуется учетная запись Type при использовании учетной записи Name, имеет смысл?

Q2: Предоставляя Type, invalidateAuthToken стирает все токены авторизации для этого типа учетной записи?

1 Ответ

2 голосов
/ 24 июля 2012

Q1: тип не такой строгий, как имя, он неявно указывает, что вы имеете дело с группой, а не с отдельным человеком, ИМХО.

accountType определяет, какой тип учетной записи вы выбираете в accountManager. например: "www.google" для учетных записей Google. учитывая пакет внутри обратного вызова, вы узнаете accountType, используя:

private class GetAuthTokenCallback implements AccountManagerCallback<Bundle> {
    public void run(AccountManagerFuture<Bundle> result) {
        try {
           bundle = result.getResult();
           String auth_token = bundle.getString(AccountManager.KEY_AUTHTOKEN);
           String auth_account_type = bundle.getString(AccountManager.KEY_ACCOUNT_TYPE);

Q2: согласно руководству разработчика , синтаксис:

public void invalidateAuthToken (String accountType, String authToken)

accountType НЕ должен иметь значение null, но authToken может иметь значение null. если вы опустите authToken, вы очистите все токены для этого аккаунтаType

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...