2012-11-29 2 views
0

Existe-t-il un moyen d'obtenir le mot de passe du compte utilisateur Gmail en surmontant la SecurityException.Obtenir les informations d'identification utilisateur "mot de passe" de AccountManager

Je travaille sur l'envoi d'emails en arrière-plan sans invite de l'utilisateur. L'API javamail que j'ai utilisée pour cela nécessite un nom d'utilisateur et un mot de passe du compte à partir duquel les emails doivent être envoyés. Je trouve des problèmes pour obtenir un mot de passe en utilisant AccountManger dans android.

Répondre

1

Heureusement, non. L'appel ActivityManager.getPassword() est uniquement autorisé aux applications qui ont le même UID que le module d'authentification (dans ce cas, les applications Google). Même si vous avez réussi à l'appeler, il ne stocke pas le mot de passe réel mais une version cryptée ou un jeton principal. Vous pouvez trouver plus de détails sur la façon dont cela fonctionne ici: http://nelenkov.blogspot.jp/2012/11/android-online-account-management.html

serveurs SMTP de Google ne prennent en charge les jetons de OAuth2 en place de mot de passe, donc vous pouvez juste obtenir un jeton de AccountManager et l'utiliser pour authentifier et envoyer des courriels. Détails ici:

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

+0

Thanx :) Pour l'option que vous suggérez des serveurs SMTP Google qui prennent en charge des jetons au lieu de mot de passe, j'ai essayé un poc et obtenu le jeton de gestionnaire de compte et passé en paramètre. Cependant, il me donne une exception javax.mail.AuthenticationFailedException montrant des informations d'identification non valides. Merci de me guider pour obtenir le bon jeton. –

+0

Reportez-vous à la documentation associée dans la réponse. –

Questions connexes