我正在Android帐户管理器中自己的身份验证器开发。当用户登录时,我想在帐户管理员中添加帐户时保存一些用户特定数据。
我正在使用AccountManager中的方法:
public boolean addAccountExplicitly (Account account, String password, Bundle userdata)
第三个参数是一个bundle,它只能包含String键值对,我想......但在我的情况下,我想把一个bundle放在一个bundle中.. 它看起来像这样:
userData _"Parameter1":"bundleOfParameter1"
|_"Paramter2": "bundleOfParamter2"
|_....
在帐户管理器中添加帐户后,我尝试使用以下内容获取用户数据:
public String getUserData (Account account, String key)
并且它返回null,我认为因为它们在添加到accountmanager期间没有设置userdata,因为它是一个bundle而不是String ...
有人知道如何传递问题吗?或者有人有同样的问题,可以帮忙吗? 我的想法是将userdata包保存为带有Bundle.toString()的字符串,然后将字符串转换为包?
(请原谅我!完美的英语......)
答案 0 :(得分:0)
尝试在自定义类中发送数据,该类实现Parcelable而不是bundle中的bundle
答案 1 :(得分:0)
请勿使用addAccountExplicitly(Account, String, Bundle)
添加用户数据。相反,只需在调用addAccountExplicitly(Account, String, Bundle)
时为捆绑包传递 null 即可。之后,调用setUserData(Account, String, String)
添加用户数据。请记住在致电setUserData(Account, String, String)
addAccountExplicitly(Account, String, Bundle)