IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Notifications push Android


Sujet :

Android

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Notifications push Android
    Bonjour ,

    J'ai lu le pavé de doc google concernant les notifications androïd.

    Seulement je me pose plusieurs questions :

    - Il y a un intent à envoyer pour s'abonner et se désabonner aux notifications -->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER"); registration.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(),0));
    registrationIntent.putExtra("sender", emailOfSender);
    startService(registrationIntent);
    Seulement je me demande où mettre ce code, car si je le mets au lancement de l'application il sera appelé à chaque ouverture or je n'en ai besoin qu'une fois non ?
    Et concernant l'intention de désabonnement, où dois-je la mettre ?

    - Puis-je tester les notifications sans avoir pris la license developper, ou dois-je absoulment l'avoir pour tester.
    - Si je dois l'avoir, il y a des certificats à installer ?

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    http://code.google.com/intl/fr-FR/android/c2dm/

    Developing and Testing Your Applications
    Here are some guidelines for developing and testing an Android application that uses the C2DM feature:
    To develop and test your C2DM applications, you need to run and debug the applications on an Android 2.2 system image that includes the necessary underlying Google services.
    To develop and debug on an actual device, you need a device running an Android 2.2 system image that includes the Market application.
    To develop and test on the Android Emulator, you need to download the Android 2.2 version of the Google APIs Add-On into your SDK using the Android SDK and AVD Manager. Specifically, you need to download the component named "Google APIs by Google Inc, Android API 8". Then, you need to set up an AVD that uses that system image.
    If the C2DM feature is critical to the application's function, be sure to set android:minSdkVersion="8" in the manifest. This ensures that the application cannot be installed in an environment in which it could not run properly.
    On dirait que tu n'as pas besoin de "licence" et en plus de quelle licence parles-tu ?

    Après la doc te donnes deux exemples, tu pourrais y jeter un coup d' oeil
    http://code.google.com/p/jumpnote/source/browse/
    http://code.google.com/p/chrometophone/source/browse/
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    TU peux les tester sans problème, et même sans téléphone. Il te faudra juste un émulateur "Google API" de la version 2.2 minimum (le minimum imposé par le service C2DM). Pour info, l'IMEI de l'émulateur est 0.

    Pour s'abonner ou non, c'est à toi de voir.
    Dans une de mes applis, je l'ai fait au démarrage, le service d'inscription côté serveur prenant en charge de tester si présent ou non.
    Une autre solution serait d'utiliser les SharedPreferences pour avoir l'état, par exemple.

    Pour la question "où je met ce code ?", tu le mets où tu veux que l'application s'enregistre
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Déjà merci pour vos réponses.

    Pour tester pas de soucy j'ai un device androïd 2.2 et je me suis inscrit à google c2dm.
    Concernant la license je parle de celle pour publier sur le market. Je dis ça parce que j'ai mis en place un système de notifications sous iPhone et il fallait avoir la license et créer des certificats pour que ça fonctionne en test...

    Merci pour les liens, je vais regarder.
    J'ai mis le code dans ma première activity, il sera appelé à chaque ouverture de l'appli, j'espère que ça ne posera pas de problème (ce qui me gênait c'est que côté serveur j'imagine qu'on enregistre le device token dans une base mais qu'on appel le script pour l'enregistrer chaque fois à l'ouverture donc il va surement falloir que je fasse juste un test pour voir s'il est déjà rentré, je trouvais juste ça un peu lourd de le faire chaque fois je pensais qu'il y avait un moyen de ne plus l'appeler une fois le token entré dans la base et l'utilisateur abonné).

    Merci pour vos réponses je vous tiens au courant


    EDIT : J'ai testé ce matin et ça m'a renvoyé un numéro type :
    08-02 09:35:18.554: INFO/System.out(7239): registrationId : APA91bFDgz5LKgjPhVCUYzf9cR6p4FSyr-MgFcLDR78L-dR242xyf4fFDKnLhV0AidOfWpozIpwfPevZTcIgrLKiiJh0dVsEgQOzDQ

    J'imagine que c'est ça le token ?
    Est-ce que vous auriez un exemple de script côté serveur pour envoyer la notification , mais en php ? ( j'ai trouvé en bash, en java et en python, mais pas en php :/ .. merci )

    EDIT 2 : J'ai utilisé ce lien --> http://tokudu.com/demo/android-push/
    en mettant le registrationId ci-dessus donc et le message.. il me dit message sent mais je ne reçois rien.. d'où peut provenir le problème d'après-vous ?
    Le registrationId change à chaque lancement de l'application.. est-ce normal ?


    Merci d'avance, ( désolé j'en demande beaucoup là mais je suis un peu pris par le temps et ça fait un moment que je galère dessus après m'être tapé des docs de x pages en anglais.. :/ )

    Guillaume

  5. #5
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Voici l'article que j'avais utilisé pour mettre ce service en place : http://www.tiptoptool.com/spip.php?p...c_article=5540
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Hizin Voir le message
    Voici l'article que j'avais utilisé pour mettre ce service en place : http://www.tiptoptool.com/spip.php?p...c_article=5540
    Ahah c'est justement le tuto que j'utilise ( merci beaucoup il est vraiment très bon et quand on a du mal avec java comme moi ça aide vraiment bien ).

    J'en suis au script shell mais il me renvoie une erreur.
    J'ai mis le code d'enregistrement au lancement de mon activité, là je récupère le registrationId.

    Ensuite je crée ton script shell sur le bureau par exemple et je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sh monScript.sh ./authentAndSendMessage monGmail monPasswd leToken "message a envoyer"
    En rajoutant un else avec echo 'error' echo $authentication_result, il me renvoie l'erreur suivante :

    error
    CaptchaToken=6vdgdQVpUhz0Gpk_ZQE4-jdfg5DTcRRh1_5-8781J7tSV6UFHPtV-8F5445ythGivHKhnhG6xmzgHMqv6RwFda-ydfgU3zAbTqKPigXTkp7AxwLS:yL6-wI9NVSdg45411m3A
    CaptchaUrl=Captcha?ctoken=564thr645SdlRQVpUhz0trhD_648FEd4-jRIkoLOACH_dhtyjQDTcRRh1_56y4tj-51jy781J7tSV6UFHPtV-8FjmHxythGtyj546xmzgHMqv6RwFda-ySWsU3zAbTqKjyF84xwLS%3AyL6-wI9NVSgdrgF74411m3A
    Error=CaptchaRequired Url=https://www.google.com/accounts/ErrorMsg?Email=blabla&service=blabla&id=blmabla&timeStmp=blabla&secTok=blabla

    J'ai mis en gras car je trouve cette erreur bizarre captcha required..
    Qu'est-ce que je fais de mal ?

    Est-ce que vous avez une idée ?

    Merci beaucoup

    Guillaume

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Au final, à force de rechercher, j'ai réussi à m'envoyer une notification autrement, mais en script bash en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl https://www.google.com/accounts/ClientLogin -d Email=theEmailYouWhitelisted -d Passwd=pass****word -d accountType=HOSTED_OR_GOOGLE -d source=Google-cURL-Example -d service=ac2dm
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl --header "Authorization: GoogleLogin auth=**authFromRegistrationAbove**" "https://android.apis.google.com/c2dm/send" -d registration_id=**phoneRegistrationId(reciever)** -d "data.message=StringToPass" -d collapse_key=something -k
    (d'ailleurs cette commande me renvoie un id... me sert-il à quelque chose vu que la notification est envoyée et reçue ? si oui, à quoi ?)

    Par contre je me demande si l'authorisation que je reçois dans le premier curl est toujours valable ( car si je le met en place pour un client il faudra qu'il revienne chaque fois vers moi pour modifier le script ? ), et comment faire côté serveur pour le deuxième curl, car là j'envoie une notification à un device spécifique, et que je sache, en bash on ne peut pas boucler les devices de la base de donnée.
    Auriez-vous donc un exemple de ce script php que je cherche tant à placer sur mon serveur afin de pouvoir envoyer des notifications à plusieurs device ? :/

    Merci

Discussions similaires

  1. Notifications push sur android
    Par MarwaMimi dans le forum Android
    Réponses: 4
    Dernier message: 01/04/2014, 04h52
  2. Les notifications sous Android
    Par Feanorin dans le forum Android
    Réponses: 1
    Dernier message: 16/01/2012, 17h50
  3. Notification Push avec wp7
    Par moezBH dans le forum Windows Phone
    Réponses: 9
    Dernier message: 01/05/2011, 22h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo