在 Android 帐户管理器中存储其他数据
我想使用 android AccountManager
来同步我的网络服务和应用程序(联系人和日历的标准同步),但是,AccountManager
似乎只存储用户名和密码。我的 Web 服务需要三个凭据:用户名、密码和帐户。存储第三条信息的最佳实践是什么?
I'd like to use the android AccountManager
to sync my webservice and application (standard sync of contacts and calander) however, AccountManager
only appears to store a username and password. My web service takes three credentials: a username, a password and an account. What is the best practice for storing the third piece of information?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正如 pablisco 所解释的,您可以使用 AccountManager 的功能通过 addAccountExplicitly() 的 userData 包参数:
稍后,例如在您的身份验证器的 getAuthToken() 方法,您可以检索与您正在使用的帐户相关的数据:
不幸的是,在撰写本文时,您只能检索字符串,因此您的数据应在以下情况下存储为字符串 :你首先构建 Bundle。希望这对某人有帮助。
As pablisco explained, you can use AccountManager's ability to store arbitrary user data through addAccountExplicitly()'s userData Bundle parameter:
Later on, for example in your Authenticator's getAuthToken() method, you can retrieve the data related to the account you are working with:
Unfortunately as of this writing you can only retrieve Strings, so your data should be stored as a String when you first build the Bundle. Hope this helps someone.
从 Android 的文档来看,应该在添加帐户时使用 userData Bundle 来完成:
或显式添加值:
但我遇到了问题:
AccountManager IllegalArgumentException:密钥为 null
From Android's documentation it's supposed to be done with either the userData Bundle when the Account is added:
or adding explicitly the values:
But I'm having trouble with this:
AccountManager IllegalArgumentException: key is null