我想使用 androidAccountManager
来同步我的网络服务和应用程序(联系人和日历的标准同步)但是,AccountManager
似乎只存储用户名和密码。我的 Web 服务需要三个凭据:用户名、密码和帐户。存储第三条信息的最佳做法是什么?
问问题
11960 次
2 回答
32
正如 pablisco 所解释的,您可以通过addAccountExplicitly()的 userData Bundle 参数使用 AccountManager 存储任意用户数据的能力:
final Bundle extraData = new Bundle();
extraData.putString("someKey", "stringData");
boolean accountCreated = am.addAccountExplicitly(account, password, extraData);
稍后,例如在您的 Authenticator 的getAuthToken()方法中,您可以检索与您正在使用的帐户相关的数据:
String myData = am.getUserData(account, "someKey");
不幸的是,在撰写本文时,您只能检索字符串,因此当您第一次构建 Bundle 时,您的数据应该存储为字符串。希望这可以帮助某人。
于 2011-12-16T05:09:19.410 回答
3
在 Android 的文档中,添加帐户时应该使用 userData Bundle 来完成:
AccountManager manager = AccountManager.get(context);
manager.addAccountExplicitly(account, null, userData);
或显式添加值:
manager.setUserData(account, KEY, value);
但我遇到了麻烦:
于 2011-12-02T18:29:48.843 回答