1

我正在 android 帐户管理器中使用自己的身份验证器进行开发。当用户登录时,我想在帐户管理器中添加帐户时保存一些用户特定的数据。

我正在使用 AccountManager 中的方法:

public boolean addAccountExplicitly (Account account, String password, Bundle userdata)

第三个参数是一个包,它只能包含字符串键值对,我认为......但在我的情况下,我想将一个包放在一个包中......它看起来像这样:

userData _"Parameter1":"bundleOfParameter1"
        |_"Paramter2": "bundleOfParamter2" 
        |_....

在帐户管理器中添加帐户后,我尝试通过以下方式获取用户数据:

public String getUserData (Account account, String key)

它返回null,我认为是因为他们在添加accountmanager期间没有设置用户数据,因为它是一个捆绑包而不是一个字符串......

有人知道如何解决问题吗?或者有人遇到同样的问题并且可以提供帮助?我的想法是使用 Bundle.toString() 将用户数据包保存为字符串,然后再将字符串转换为包?

(执行我的!完美的英语......)

4

2 回答 2

0

尝试在实现 Parcelable 的自定义类中发送您的数据,而不是在捆绑包中发送捆绑包

于 2014-10-27T12:54:21.343 回答
0

不要使用addAccountExplicitly(Account, String, Bundle). 相反,只需在调用时为 bundle传递nulladdAccountExplicitly(Account, String, Bundle)。之后,调用setUserData(Account, String, String)添加用户数据。记得打电话setUserData(Account, String, String)马上打电话addAccountExplicitly(Account, String, Bundle)

于 2018-07-25T07:25:10.437 回答