在帐户管理器中将bundle设置为用户数据



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

我正在使用来自AccountManager的方法:

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

第三个参数是bundle,它只能包含String键值对,我认为。。。但就我而言,我想把一个包裹放在一个包裹里。。它看起来像这样:

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

在帐户管理器中添加帐户后,我尝试使用获取用户数据

public String getUserData (Account account, String key)

它返回null,我想是因为他们在添加accountmanager时没有设置userdata,因为它是一个bundle而不是String。。。

有人知道如何解决这个问题吗?或者有人有同样的问题,可以帮忙吗?我的想法是用Bundle.toString()将用户数据捆绑包保存为Strings,然后将字符串转换为捆绑包?

(感谢我!完美的英语…)

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

不要使用addAccountExplicitly(Account, String, Bundle)添加用户数据。相反,在调用addAccountExplicitly(Account, String, Bundle)时,只需为bundle传递null。之后,调用setUserData(Account, String, String)添加用户数据。请记住在调用addAccountExplicitly(Account, String, Bundle)

之后向右调用setUserData(Account, String, String)