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 :

Notification Planifiée à une heure précise


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Developpeur Android
    Inscrit en
    Juin 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 65
    Points : 57
    Points
    57
    Par défaut Notification Planifiée à une heure précise
    Bonjour.
    Je pense que le titre est assez explicite.
    Je dispose d'événements (avec des horraires) et j'aimerai pouvoir lancer une notification à une heure précise (par exemple 1h ou 5min avant le début de l'événement).

    Quel outil me permet de réaliser ceci ?
    J'ai recherché sur le fofo et je suis tombé sur l'alarmManager, est-ce approprié ?

    Merci

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Oui, l'AlarmManager permettra de réveiller le téléphone et d'executer du code à une date précise (ou non, en général non pour pas bouffer trop de batterie). Ce code peut alors poster une notification.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre du Club
    Homme Profil pro
    Developpeur Android
    Inscrit en
    Juin 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 65
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par nicroman Voir le message
    ou non, en général non pour pas bouffer trop de batterie
    C'est ce que j'avais lu.
    Cela fonctionne même si l'appli qui a lancer cette alarme est arreté et que la tablette est en veille ?

    Citation Envoyé par nicroman Voir le message
    l'AlarmManager permettra de réveiller le téléphone
    Ça veut bien dire ce que ça veut dire, mais je demande juste pour être sur

    Pourrai tu me donner un exemple du code à mettre en place si ce n'est pas trop te demander ?

    Merci encore

  4. #4
    Membre du Club
    Homme Profil pro
    Developpeur Android
    Inscrit en
    Juin 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 65
    Points : 57
    Points
    57
    Par défaut
    C'est bon, je m'en suit sorti

    Pour ceux qui cherchent encore la réponse, voici :

    Dans la MainActivity.class

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    AlarmManager am;
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       ....
     
       am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
       ajouterAlarme(1, 2013, 5, 24, 17, 06);
       //Ajoute une alarme pour le 5 Juin 2013, 17h06
    }
     
    public void ajouterAlarme(int id, int year, int month, int day, int hour, int minute)
    {
        	Calendar cal = Calendar.getInstance();
            cal.set(year, month, day, hour, minute);
     
            Intent intent = new Intent(this, TimeAlarm.class);
            PendingIntent operation = PendingIntent.getBroadcast(this, id, intent, PendingIntent.FLAG_ONE_SHOT);
    	am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), operation);
     
        }

    La classe TimeAlarm.class

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
     
    public class TimeAlarm extends BroadcastReceiver {
     
    	 NotificationManager nm;
     
    	 @Override
    	 public void onReceive(Context context, Intent intent) 
    	 {
    		  nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    		  CharSequence from = "developpez.et";
    		  CharSequence message = "message de notif";
    		  PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(), 0);
    		  Notification notif = new Notification(R.drawable.ic_launcher, "message de notif", System.currentTimeMillis());
    		  notif.setLatestEventInfo(context, from, message, contentIntent);
    		  nm.notify(1, notif);
    	 }
     
    }


    Ne pas oublier ceci dans le manifest, sinon ça ne fonctionnera pas !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <application
            ....
            <receiver android:name=".TimeAlarm" />
        </application>

  5. #5
    Membre du Club
    Homme Profil pro
    Developpeur Android
    Inscrit en
    Juin 2012
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 65
    Points : 57
    Points
    57
    Par défaut
    Une âme chaleureuse pourrait-elle me dire pourquoi quand j’exécute ce code, cela me notifie 1 fois à l'heure que je veut (OK ça fonctionne) mais aussi 1 fois directement après avoir programmé l'alarme (après avoir lancer la méthode ajouterAlarme (...) ???

  6. #6
    Membre éclairé

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Points : 690
    Points
    690
    Par défaut
    Tu as essayé d'ajouter la méthode cancel() une fois l'alarme excutéé?
    voici un lien qui pourrait t'aider cliquez
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Planifier un envoi de mail à une heure précise
    Par manu f dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 30/06/2010, 10h34
  2. [PHP] Exécuter du code PHP à une heure précise
    Par Ice-tea dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2007, 23h46
  3. Réponses: 6
    Dernier message: 17/08/2006, 10h40
  4. Exécuter une action à une heure précise
    Par Rhadamanthe59 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 10/02/2006, 00h12
  5. [PPC][C#] Reveiller un PPC à une heure précise
    Par aeled dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 27/12/2005, 16h00

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