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 :

Lancer automatiquement une application lors de la sortie de veille de l'appareil


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Par défaut Lancer automatiquement une application lors de la sortie de veille de l'appareil
    Bonjour à tous,

    Je souhaiterai démarrer mon Application à chaque sortie de veille de mon appareil
    (je sais que ce n'est pas vraiment conseillé par respect envers les utilisateurs, mais c'est pour une utilisation personnelle :p )

    J'aimerai savoir si certains d'entre vous ont déjà été amenés à réaliser quelque chose du genre : j'ai un peu tout testé : BroadcastReceiver, AlarmManager, Service, mais rien n'y fait, je n'arrive pas à m'en sortir. Ca me paraissait pas super compliqué pourtant ...

    Sinon existe t-il une application existante qui permettrai de réaliser ceci ? J'ai un peu regardé sur le Google Play, mais je n'ai pas trouver quelque chose de concret.

    Merci d'avance pour vos réponses

  2. #2
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Bonjour,

    Il te faut un BroadCastReceiver à l'écoute de ACTION_SCREEN_ON qui démarrera ton écran d'application.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Par défaut
    Merci de ta réponse, voici les différentes étpaes que j'ai effectué concernant le BroadcastReceiver :

    J'ai ceci en premier dans le onCreate() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BroadcastReceiver receiver;
    	IntentFilter filter;
            receiver = new ScreenOnReceiver();
            filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
            registerReceiver(receiver, filter);
    Ma classe BroadcastReceiver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     public class ScreenOnReceiver extends BroadcastReceiver
        {
     
    		@Override
    		public void onReceive(Context context, Intent intent) {
    			Log.e("intent", intent.getAction());
    			if(intent.getAction().equals("android.intent.action.SCREEN_ON"))
    			{
    				Intent i = new Intent(context, MainActivity.class);  
                    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startService(i); 
    			}	
    		}	
        }
    et enfin j'ai rajouté ces lignes dans mon manifest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <receiver android:name=".ScreenReceiver">
    		 	<intent-filter>
    		 		<action android:name="android.intent.action.SCREEN_ON"/>
    		 	</intent-filter>
    		</receiver>
    d'après toi, j'ai oublié quelque chose ?

    Est ce que le receiver est toujours valable, même quand l'application ne tourne pas ?

  4. #4
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Ton premier bout de code fait la même chose que les lignes de ton manifeste et par conséquent est superflu.

    Dans le code de ton broadcastReceiver, outre le fait que ton test (if ...) est inutile, tu devrais plutôt mettre startActivity() que startService() non ?
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Par défaut
    Quand je sors de veille, j'ai bien le log qui s'affiche dans le logcat, la detection de la sortie de veille est donc bonne maintenant.

    par contre si je n'appelle pas unregisterReceiver, l'application plante à la fermeture. J'ai donc rajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @Override
        protected void onDestroy() {
           unregisterReceiver(receiver);         
           super.onDestroy();
        }
    mais le problèeme est que du coup quand je quitte l'application, je ne détecte plus la sorite de veille (suite à l'appel à unregisterReceiverje suppose).

    Une idée de comment procéder ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 41
    Par défaut
    Un petit up !

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/05/2015, 13h08
  2. Réponses: 5
    Dernier message: 04/07/2010, 06h13
  3. Lancer une application lors d'un traitement
    Par steelidol dans le forum PL/SQL
    Réponses: 5
    Dernier message: 09/01/2009, 13h57
  4. lancer automatiquement une application
    Par gone01 dans le forum Windows XP
    Réponses: 7
    Dernier message: 08/08/2008, 15h08
  5. Lancer une application lors de l'écran de login
    Par fabou3377 dans le forum Mobiles
    Réponses: 0
    Dernier message: 20/11/2007, 06h20

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