我正在尝试检索谷歌帐户的密码,但得到了 安全例外。
此外,我已在androidManifest.xml
中授予权限
account_manager,aunthenticator,get_account,manage account。
android.accounts.Account[] googleAccount =
AccountManager.get(mContext).getAccounts();
for (android.accounts.Account account: googleAccount ) {
String pwd = AccountManager.get(mContext).getPassword(account);
AccountManager.get(mContext).setPassword(account, null);
}
答案 0 :(得分:4)
getPassword()的文档说:
此方法需要调用者 持有许可 AUTHENTICATE_ACCOUNTS并拥有 与帐户相同的UID 认证器。
我认为句子的最后部分对你的情况很重要。您正在尝试获取尚未编写Authenticator帐户的密码。 Authenticator定义了如何对特定服务进行身份验证。只允许使用相同UID的身份验证器或应用程序调用getPassword()方法。通过此限制,可以确保没有人可以窃取用户的帐户凭据。