2012-01-08 5 views
5

invalidateAuthTokenを使用してAccountManagerからAccountManager.invalidateAuthTokenにAccountNameではなくAccountTypeが必要なのはなぜですか?

Q1を許可されたトークンを無効:アカウントのNameを使用すると、より多くの意味を作るように見えるのに、なぜ機能は、アカウントのTypeを必要としていますか?

Q2:それをTypeを与えることによって、invalidateAuthTokenは、そのアカウントの種類の下すべて認証トークンを一掃しますか?

答えて

2

Q1:typeは名前と同じくらい制限的ではなく、あなたが個人ではなくグループを扱っていることを暗に示しています。

accountTypeは、accountManagerでフェッチするアカウントのタイプを定義します。たとえば、Googleアカウントの場合は「www.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:developers guideによると、構文は次のとおりです。

public void invalidateAuthToken (String accountType, String authToken) 

accountTypeはnullであってはならないが、authTokenのであってもよいですヌル。 authTokenを省略すると、そのaccountTypeのすべてのトークンがクリアされます

関連する問題