在 Android 帐户管理器中存储其他数据

发布于 2024-11-29 08:38:12 字数 161 浏览 0 评论 0原文

我想使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晒暮凉 2024-12-06 08:38:12

正如 pablisco 所解释的,您可以使用 AccountManager 的功能通过 addAccountExplicitly() 的 userData 包参数:

    final Bundle extraData = new Bundle();
    extraData.putString("someKey", "stringData");
    boolean accountCreated = am.addAccountExplicitly(account, password, extraData);

稍后,例如在您的身份验证器的 getAuthToken() 方法,您可以检索与您正在使用的帐户相关的数据:

    String myData = am.getUserData(account, "someKey");

不幸的是,在撰写本文时,您只能检索字符串,因此您的数据应在以下情况下存储为字符串 :你首先构建 Bundle。希望这对某人有帮助。

As pablisco explained, you can use AccountManager's ability to store arbitrary user data through addAccountExplicitly()'s userData Bundle parameter:

    final Bundle extraData = new Bundle();
    extraData.putString("someKey", "stringData");
    boolean accountCreated = am.addAccountExplicitly(account, password, extraData);

Later on, for example in your Authenticator's getAuthToken() method, you can retrieve the data related to the account you are working with:

    String myData = am.getUserData(account, "someKey");

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.

南…巷孤猫 2024-12-06 08:38:12

从 Android 的文档来看,应该在添加帐户时使用 userData Bundle 来完成:

AccountManager manager = AccountManager.get(context);
manager.addAccountExplicitly(account, null, userData);

或显式添加值:

manager.setUserData(account, KEY, value);

但我遇到了问题:

AccountManager IllegalArgumentException:密钥为 null

From Android's documentation it's supposed to be done with either the userData Bundle when the Account is added:

AccountManager manager = AccountManager.get(context);
manager.addAccountExplicitly(account, null, userData);

or adding explicitly the values:

manager.setUserData(account, KEY, value);

But I'm having trouble with this:

AccountManager IllegalArgumentException: key is null

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文