Aller au contenu

Récupérer l'adresse Gmail enregistrée du téléphone


djdamage

Recommended Posts

Bonjour à tous,

Je voudrais savoir s'il est possible (et si oui comment) de récupérer à travers mon application l'adresse e-mail spécifiée par l'utilisateur lors de sa connexion à l'Android Market (forcément spécifié pour télécharger une quelconque application) ?

Pas besoin de son password, juste l'adresse e-mail enregistré dans GoogleApps !

Je sais qu'il est possible de récupérer cela avec AccountManager, le seul souci étant que ce n'est utilisable qu'à partir de l'API Level 5, or mon application doit être compatible à partir du level 3 !

Merci d'avance pour vos réponses :)

Lien vers le commentaire
Partager sur d’autres sites

Cela peut-être intéressant, car sur mes licenses, je me base sur le numéro IMEI. Une adresse gmail cryptée serait le pied pour ce genre de manip alors!

Mais par contre, c'ets pas interdit de le récupérer ou quid de la vie privée? Il y a rien dans les conditions d'utilisation qui empêche de le récupérer?

Lien vers le commentaire
Partager sur d’autres sites

profete a pas tords, je m en sers pour compter les mails non lus,donc j'aurais pas de pb....mais d autres utilisation sont possibles et surement pas super autorisées (par contre il y a une grosse permission gmail)

bon par contre j ai regardé mon code j'ai recodé un AccountMonitor en intégrant celui des sources d'android 1.5.

Et ça demande des permissions cachées spécial gmail....et les .aidl du framework.

En gros c'est pas quelques lignes de codes qui tournent toutes seules.

Le mieux serait que je fasse un apk de test avec le source sur Google code.

je tente dans la soirée.

Lien vers le commentaire
Partager sur d’autres sites

http://www.taskiller.com/img/gmaildetect.zip

un programme test qui affiche votre adresse gmail.

il faut un dossier android.... avec l idl de l accountprovider

et deux fichier en plus dans votre appli (reconnaissables à leur en tete apache :p )

en gros vous balancez un new accountMonitor...il vous rebalance le compte dans une String statique.

Après à vous de modifier le fichier vers la ligne 92 pour faire ça à votre sauce..

Attention aux deux permissions du manifest :)

En théoprie il gere le multi account (vu que c'est un tableau qui est renvoyé...)

Ils avaient prévu le terrain sur android 1.5 déjà :)

enjoy !

PS : la récupération est asynchrone. Donc faites gaffes aux threads dans votre appli

Modifié par popolbx
Lien vers le commentaire
Partager sur d’autres sites

Merci popolbx pour ton aide !

Cependant lorsque je lance mon application, mon AlertDialog où j'ai placé comme texte mGoogleAccount ne s'affiche plus du tout bizarrement, et encore mieux lorsque je quitte l'application, DDMS me sort un pavé entier d'erreurs, dont la principale est :

Activity com.test.testing.truc has leaked IntentReceiver com.test.testing.AccountMonitor@431e76a8 that was originally registered here. Are you missing a call to unregisterReceiver() ?

Cela plante donc à la ligne 122 de la classe AccountMonitor, et donc aussi lors de mon AccountMonitor mon = new AccountMonitor(this); dans mon appli...

Des idées ?

Lien vers le commentaire
Partager sur d’autres sites

Comme il y a la possibilité de conserver l'IntentReceiver il faut implémenter unregisterReceiver pour s'en débarasser.

l'Activity truc a été détruite mais l'instance d'AccountMonitor est resté en mémoire sans être référencée nulle part d'où le Warning.

C'est p-e un pb de compliance avec ton niveau d'API aussi...

Modifié par Igosuki
Lien vers le commentaire
Partager sur d’autres sites

Même si, lors de la sortie de mon application, j'ai toujours l'erreur que j'ai signalé plus haut, ça marche à merveille popolbx !!

Je pense que cette aide va être utile à beaucoup d'autres développeurs, surtout que cela fonctionne à partir de l'API Level 3 !

Lien vers le commentaire
Partager sur d’autres sites

merci popolbx !

ca marche tres bien sur mon Dream en 1.5.

Par contre, sur Milestone (2.1) & Hero (2.1), ca donne une belle exception :

04-30 09:09:08.467: WARN/Resources(10299): Converting to string: TypedValue{t=0x12/d=0x0 a=3 r=0x7f050000}

04-30 09:09:08.577: WARN/Parcel(4806): **** enforceInterface() expected 'com.google.android.googleapps.IGoogleLoginService' but read 'android.accounts.IAccountsService'

04-30 09:09:08.577: WARN/dalvikvm(10299): threadid=15: thread exiting with uncaught exception (group=0x4001e390)

04-30 09:09:08.587: ERROR/AndroidRuntime(10299): Uncaught handler: thread Thread-8 exiting due to uncaught exception

04-30 09:09:08.657: ERROR/AndroidRuntime(10299): java.lang.SecurityException: Binder invocation to an incorrect interface

04-30 09:09:08.657: ERROR/AndroidRuntime(10299): at android.os.Parcel.readException(Parcel.java:1218)

04-30 09:09:08.657: ERROR/AndroidRuntime(10299): at android.os.Parcel.readException(Parcel.java:1206)

04-30 09:09:08.657: ERROR/AndroidRuntime(10299): at android.accounts.IAccountsService$Stub$Proxy.getAccounts(IAccountsService.java:110)

04-30 09:09:08.657: ERROR/AndroidRuntime(10299): at com.popolbx.gmd.AccountMonitor$AccountUpdater.run(AccountMonitor.java:72)

Rien de tres grave puisqu'en >= 2.0, on peut utiliser l'accountManager, mais il est clair qu'il faut tester le niveau d'API avant d'appeler ce code.

Modifié par Koxx
Lien vers le commentaire
Partager sur d’autres sites

  • 1 year later...

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...