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 :

Services auto-waked up (android.intent.action.BOOT_COMPLETED)


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Points : 70
    Points
    70
    Par défaut Services auto-waked up (android.intent.action.BOOT_COMPLETED)
    Bonjour à tous,

    - J'ai un service qui est lancé au login du user dans l'application.
    - ce service tourne donc continuellement (dans le but d'updater la position GPS toutes les deux heures)
    - ce service, une fois lancé, doit se relancer automatiquement lors du redemarrage du telephone

    j'ai donc dans le manifest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <!-- Handling regular location update -->
            <receiver
                android:name="trucmuche.location.LocationAlarmReceiver"
                android:process=":remote" >
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" >
                    </action>
                </intent-filter>
            </receiver>
     
            <service android:name="trucmuche.location.LocationService" />
    et un alarm manager tel que :
    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
     
    public class LocationAlarmReceiver extends BroadcastReceiver {
        private void cancelAlarm(Context context) {
            AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            alarmManager.cancel(createPendingIntent(context));
        }
     
        private static PendingIntent createPendingIntent(Context context) {
            Intent i = new Intent(context, LocationAlarmReceiver.class);
            PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
            return pi;
        }
     
        public void setAlarm(Context context) {
            AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            am.setInexactRepeating(AlarmManager.ELAPSED_REALTIME,
                    SystemClock.elapsedRealtime(),
                    Config.TIME_BETWEEN_LOCATION,
                    createPendingIntent(context));
        }
     
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent != null && "android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
                setAlarm(context);
            } else {
                context.startService(new Intent(context, LocationService.class));
            }
        }
    }
    Je cherche à verifier que ce service est correctement relancé au Reboot du device, le problème est que je ne peux logger cela car quand j'eteint mon device puis le rallume, mon logcat est juste cleared...

    une petite idée pour me permettre de tester cela facilement et verifier que le service se relance bien au reboot? (les logs d'appels WS n'etant pas une option viable étant donné qu'ils sont "externes")

    D'avance merci,
    cordialement,

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Points : 70
    Points
    70
    Par défaut
    Bon j'ai trouvé un moyen simple de tester cela:
    - toute les 2 sec mon service envoi une fausse notification qui apparait donc dans la taaskBar.

    Le probleme:
    - quand on lance l'appli les notifications s'enchainent > normal
    - quand on kill l'appli : les notifications continuent > normal
    - quand je reboot le device > PAS de notifications :s

    Au vu de mon code (posté dans le 1er post) quelqu'un pourrait me dire ce que j'ai raté/ ce qu'il me manque?

    D'avance merci

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Points : 139
    Points
    139
    Par défaut
    Salut,

    je vois une possible erreur dans le manifest, il manque la permission:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    mais je sais pas si j'ai tout ce qui concerne le reboot.

    une façon simple, c'est de mettre un toast a l’exécution de ton BroadcastReceivertiens au jus.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Points : 70
    Points
    70
    Par défaut
    Bien joué merci ^^

    Chose bizarre la permission n'est pas obligatoire pour une version d'Android 2.3.6...

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

Discussions similaires

  1. Problème avec les services web rest sur android
    Par JacNar6 dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 24/09/2013, 17h41
  2. [WS 2000] service auto ne se lance pas
    Par T3rm1nat0r dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 17/06/2011, 11h49
  3. générer un proxy d'un service auto-hébergé
    Par ralf91 dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 05/03/2010, 08h55
  4. Détecter des services (Bundle) avec appli Android
    Par superkiller dans le forum Android
    Réponses: 0
    Dernier message: 01/03/2010, 19h16

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