具有多种身份验证令牌类型的Android AccountManager

时间:2014-09-10 20:54:07

标签: android accountmanager auth-token

我已经按照syncadapter示例创建了AccountManager和同步适配器。我希望在同一帐户下有两种不同类型的authtoken用于不同目的(访问不同的服务 - 同步适配器使用其中一种)。

事情有效但我发现当我通过getauthtoken认证一个authtoken类型时,保存它的过程会替换另一个authtoken类型。我在之前和之后查看了accounts.db文件。在调用获取authtoken类型" B"的令牌之前,accounts.db中的authtoken表具有authtoken for auth type" A"。在调用之后,accounts.db中的authtoken表具有类型" B"但是" A"去掉了。无论订单如何,accountmanager子系统似乎都不会为我的帐户类型为每个帐户存储多个authtoken。

当你有多个authtoken类型时,某些xml文件中是否需要配置一些特殊的东西?

1 个答案:

答案 0 :(得分:2)

我发现了我的问题。如果您通过身份验证/登录成功调用AccountManager.setPassword(),它将使您帐户的所有身份验证令牌无效。这是一种无证的副作用,在某些情况下,它是有道理的。将密码设置为相同值的软件会不小心使其身份令牌无效。