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 :

Comment lire la date d'une façon permanente même si l'application est fermée ?


Sujet :

Android

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 94
    Points : 40
    Points
    40
    Par défaut Comment lire la date d'une façon permanente même si l'application est fermée ?
    Bonjour,
    Je souhaite créer une application qui à des dates données de l'années et envoie des sms à des gens particuliers.
    Le principe, que je vois, est que l'application doit chaque jour vérifier la date du jour avec les dates sauvegardées dans la base. Et cela même si l'application est complètement fermée.
    Mon probléme est :
    Que se soit l'application fermé ou pas, comment je dois faire pour que l'application puisse lire la date du jour (à 12 h par exemple) en permanence ?
    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
    Pourquoi vouloir lire la date du jour ?

    A chaque fois qu'un nouveau "schedule" d'envoi de SMS est enregistré, on modifie / crée une Alarme dans le AlarmManager avec la plus proche des dates à venir.
    Quand on recoit une alarme de ce type, on effectue l'action, puis on recommence (modifie/crée l'Alarme avec la date la suivante la plus proche).

    C'est le système qui appellera l'application à la date voulue.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 94
    Points : 40
    Points
    40
    Par défaut
    par exemple si la date est : 08/02/2016 à 10:00

    la main activity :
    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
     
    Calendar cal = Calendar.getInstance();
     
     
            cal.set(Calendar.DATE,8);  //1-31
            cal.set(Calendar.MONTH,Calendar.FEBRUARY);  //first month is 0!!! January is zero!!!
            cal.set(Calendar.YEAR,2016);//year...
     
            cal.set(Calendar.HOUR_OF_DAY, 10);  //HOUR
            cal.set(Calendar.MINUTE, 0);       //MIN
            cal.set(Calendar.SECOND, 0);       //SEC
     
     
            Intent intent = new Intent(this, AlarmReceiver.class);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 5232654, intent,
                    PendingIntent.FLAG_UPDATE_CURRENT);
     
            AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
            am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);

    la classe : AlarmReceiver :
    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
     
    package receivers;
     
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
     
    import android.widget.Toast;
     
    public class AlarmReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            Toast.makeText(context, "Alarm !!!!!!!!!!", Toast.LENGTH_LONG).show(); // For example
     
        }
     
    }
    le manifest :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="app.android.aayad.a3yad10">
     
        <uses-permission android:name="android.permission.READ_CONTACTS" />
        <uses-permission android:name="android.permission.SEND_SMS" />
        <uses-permission android:name="android.permission.RECEIVE_SMS" />
        <uses-permission android:name="android.permission.READ_SMS" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
     
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".A3yadMainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
            <receiver
                android:name="receivers.AlarmReceiver">
                <intent-filter android:priority="999">
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
                </intent-filter>
            </receiver>
     
        </application>
     
     
     
    </manifest>
    mais quant l'heure ert arrivé à 10:00, l'alarme n'as pas fonctionné.
    merci

  4. #4
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Points : 634
    Points
    634
    Par défaut
    Les BroadcastReceivers sont supposés recevoir des actions diffusées.

    Du coup je ne sais si faire ceci : Intent intent = new Intent(this, AlarmReceiver.class); serait l'idéal !

    Essaie plutôt de diffuser une Action en faisant à la place ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Intent intent = new Intent("ACTION_ALARM");
    et tu ajoute dans ton fichier manifest ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <intent-filter> <action android:name="ACTION_ALARM" /> </intent-filter>
    Aujourd'hui apprenant, demain appreneur.
    N'accuse pas le puits d'être trop profond,
    c'est peut-être ta corde qui est trop courte

Discussions similaires

  1. Comment lire les propriétés d'une imprimante ?
    Par zidenne dans le forum Langage
    Réponses: 18
    Dernier message: 06/08/2010, 11h26
  2. Afficher une message box même si la session est fermée
    Par jesus144 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 05/10/2008, 18h09
  3. [VB.NET] Lire les dates d'une bd access dans un form Vb.net
    Par Herlece dans le forum Accès aux données
    Réponses: 6
    Dernier message: 03/01/2006, 09h38
  4. Comment obtenir la date dans une store proc?
    Par Dnx dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/10/2005, 17h31
  5. Réponses: 3
    Dernier message: 06/05/2002, 18h24

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