为什么AccountManager.invalidateAuthToken需要AccountType而不是AccountName?

时间:2012-01-08 01:10:32

标签: android accountmanager

使用AccountManager,{/ p>从invalidateAuthToken使授权令牌失效时

Q1:为什么在使用帐户的Type时,该功能需要帐户的Name似乎更有意义?

Q2:通过提供TypeinvalidateAuthToken是否会清除该帐户类型下的所有身份验证令牌?

1 个答案:

答案 0 :(得分:2)

Q1:类型不像名称那样具有限制性,它隐含地表明您正在处理的是一个群体,而不是个人,恕我直言。

accountType定义您在accountManager中提取的帐户类型。例如:谷歌帐户的“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可能为null。如果省略authToken,则清除该accountType的所有令牌