1

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

一切正常,但我发现当我对一种 authtoken 类型进行身份验证(通过 getauthtoken)时,保存它的过程会替换另一种 authtoken 类型。我在之前和之后查看了 accounts.db 文件。在调用获取 authtoken 类型“B”的令牌之前,accounts.db 中的 authtoken 表有一个用于 auth 类型“A”的 authtoken。调用后,accounts.db 中的 authtoken 表具有类型“B”的 authtoken,但删除了“A”。无论顺序如何,accountmanager 子系统似乎都不会为我的帐户类型为每个帐户存储一个以上的 authtoken。

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

4

1 回答 1

2

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

于 2014-09-15T02:02:21.250 回答