从AccountManager获取用户凭据“密码”

时间:2012-11-29 12:51:08

标签: android

是否有办法通过克服SecurityException来获取Gmail用户帐户的密码。

我正在努力在没有用户提示的情况下在后台发送电子邮件。我用于此的javamail API需要用于发送电子邮件的帐户的用户名和密码。我在Android中使用AccountManger获取密码时遇到了麻烦。

1 个答案:

答案 0 :(得分:1)

幸运的是,没有。 ActivityManager.getPassword()调用仅允许与具有与身份验证器模块相同的UID的应用程序(在本例中为Google应用程序)。即使你设法调用它,它也不会存储实际的密码,而是存储它的加密版本或主令牌。您可以在此处找到有关其工作原理的更多详细信息:http://nelenkov.blogspot.jp/2012/11/android-online-account-management.html

Google的SMTP服务器确实支持OAuth2令牌代替密码,因此您只需从AccountManager获取令牌并使用它来验证和发送电子邮件。详情如下:

https://developers.google.com/google-apps/gmail/oauth_overview