djdamage Posté(e) 28 avril 2010 Share Posté(e) 28 avril 2010 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 :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 28 avril 2010 Share Posté(e) 28 avril 2010 je l ai fait, je te file le code des que je retrouve mon pc. en gros j utilise l accountmanager caché par reflexion. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 28 avril 2010 Share Posté(e) 28 avril 2010 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? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 28 avril 2010 Share Posté(e) 28 avril 2010 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. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Koxx Posté(e) 28 avril 2010 Share Posté(e) 28 avril 2010 ah tiens ! ca m'interesse aussi :) En >= 2.0, c'est simple, en dessous, ca demande pas mal de bidouille visiblement. merci popolbx ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 28 avril 2010 Share Posté(e) 28 avril 2010 (modifié) 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é 28 avril 2010 par popolbx Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Koxx Posté(e) 28 avril 2010 Share Posté(e) 28 avril 2010 le lien ne fonctionne po :( Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 28 avril 2010 Share Posté(e) 28 avril 2010 j'ai édité mon post : sorry !! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djdamage Posté(e) 29 avril 2010 Auteur Share Posté(e) 29 avril 2010 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 ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Igosuki Posté(e) 29 avril 2010 Share Posté(e) 29 avril 2010 (modifié) 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é 29 avril 2010 par Igosuki Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djdamage Posté(e) 29 avril 2010 Auteur Share Posté(e) 29 avril 2010 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 ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 29 avril 2010 Share Posté(e) 29 avril 2010 effectivement quand vous recevez l account un appel a unregister machin devrait résoudre le truc. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Koxx Posté(e) 30 avril 2010 Share Posté(e) 30 avril 2010 (modifié) 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é 30 avril 2010 par Koxx Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djdamage Posté(e) 30 avril 2010 Auteur Share Posté(e) 30 avril 2010 Pourriez-vous me rappeler comment on récupère la version du firmware android sur un device ? Cela fait depuis 30minutes que je cherche sur Google, sans résultat... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 30 avril 2010 Share Posté(e) 30 avril 2010 android.os.xxxx Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djdamage Posté(e) 30 avril 2010 Auteur Share Posté(e) 30 avril 2010 (modifié) android.os.xxxx if(Build.VERSION.RELEASE.substring(0, 1).equals("1")) { // just do it with API Level 1, 2, 3 and 4 } else { // just do it with API Level 5+ } Merci à popolbx encore une fois :) Modifié 30 avril 2010 par djdamage Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 30 avril 2010 Share Posté(e) 30 avril 2010 Tu as plus simple : Build.VERSION.SDK_INT Ca te donne de suite la version de l'api : http://developer.android.com/reference/android/os/Build.VERSION.html#SDK_INT Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
dawadam Posté(e) 31 mai 2011 Share Posté(e) 31 mai 2011 Bonjour Je cherche à récupérer l'adresse mail du compte google associé au téléphone sans succès. Auriez-vous un bout de code à poster ? Sachant que c'est pour l'API 1.5 et supérieur. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.