【问题标题】:Log all user accounts and passwords?记录所有用户帐户和密码?
【发布时间】:2024-05-23 15:45:01
【问题描述】:

这仅用于测试目的。我没有将它构建到应用程序中。

我正在尝试记录所有用户保存的帐户和密码

    AccountManager accountManager = AccountManager.get(this);   

    for(Account account : accountManager.getAccounts())
    {
        System.out.println(account.name + " : " + accountManager.getPassword(account));
    }

但我收到一个错误

E/AndroidRuntime(11944): java.lang.SecurityException: caller uid XXXXX is different than the authenticationator's uid

我已经阅读了this question,但它并没有真正解释如何解决这个问题,只是为了避免它,至少我是这么认为的。

有没有办法解决这个问题?

提前致谢

【问题讨论】:

  • 您是否在清单中添加了所需的权限?
  • 出于明显的安全原因,您不应该这样做。

标签: java android security


【解决方案1】:

发生这种情况是因为您无法通过这种方式获取设备的帐户。 这仅适用于您之前将帐户添加到 AccountManager 并希望稍后检索它的情况。

这就是为什么告诉你没有得到正确许可的原因。

要知道设备中添加的帐号应该使用,例如:

AccountManager accountManager = AccountManager.get(this);
Account[] accounts = accountManager.getAccounts();
accountManager.getUserData(accounts[0], AccountManager.KEY_USERDATA);

希望对你有帮助。

【讨论】:

    最近更新 更多