2012-11-29 76 views
0

有没有办法通过克服SecurityException来获取Gmail用户帐户的密码。从AccountManager获取用户凭证“密码”

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

回答

1

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

谷歌的的SMTP服务器不支持,虽然令牌的OAuth2代替密码,这样就可以刚刚从AccountManager获得令牌,并用它来验证和发送电子邮件。详情点击这里:

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

+0

感谢名单:)为您推荐的支持,而不是密码令牌谷歌的SMTP服务器的选择,我想一个POC和从客户经理拿到令牌作为参数传递。不过,它给了我javax.mail.AuthenticationFailedException异常显示无效的凭据。请引导我通过获取正确的标记。 –

+0

请参阅答案中链接的文档。 –