我写了一个应用程序A,它使用AccountManager进行登录处理。然后,我写了另一个使用A的AccountManager帐户数据的应用程序B.
但是当我运行B时,我得到“java.lang.SecurityException:caller uid xxxx与authenticator的uid不同”。
使用A的密钥库文件签名B解决了这个问题。
但是,我仍然想知道为什么会发生这种情况以及是否有替代解决方案。
答案 0 :(得分:3)
此消息极具误导性。如果您具有与具有帐户身份验证器的应用程序相同的uid或相同签名,则只能访问其他帐户信息。没有其他解决方案。他们会很好地改变信息。
这是一项重要的安全预防措施。如果它没有这个任何应用程序可以阅读任何人的elses用户数据。这可能包含感性信息。
来源:阅读代码