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 :

alarme batterie faible


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Par défaut alarme batterie faible
    Bonjour à tous!
    Je conçois actuellement une application Android qui tournera sur un Archos A70IT.
    Je souhaiterais faire en sorte qu'une alarme se déclenche lorsque la batterie est faible (par exemple 10%).
    J'ai déjà réussi à coder une méthode qui me donne le niveau restant (c'est déjà pas mal pour moi!!), mais je ne sais pas comment faire pour que l'application "reste à l'écoute" en permanence du niveau de batterie et lance l'alarme si elle est trop faible.

    Quelqu'un aurait-il une ou des idées?

    Merci!!

  2. #2
    Expert confirmé

    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
    Par défaut
    Bonjour,

    Tu peux essayer de créer un Broadcast sur le changement de la batterie.

    Pour cela tu as une constante de prévenant de son changement
    http://developer.android.com/referen...ATTERY_CHANGED

    Si cela ne marche pas tu peux toujours créer une routine (thread ou handler ) qui scrute ta batterie toutes les x minutes .

    Lorsque tu as tes 10%, alors il ne te reste plus qu'a lancer une alarme, tu as une classe gérant celle-ci, sinon tu peux toujours jouer un son .
    http://developer.android.com/referen...rmManager.html

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Par défaut
    okay, merci, je vais me pencher là-dessus!
    Je reviendrai peut-être faire un tour si j'ai des soucis...

    Merci encore!
    A+

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Par défaut
    Salut!
    Je pense que j'y suis presque, mais j'ai quelques soucis...

    J'ai crée une classe BatteryAlarm extends BroadcastReceiver, qui lance la méthode onReceive à chaque changement de 1% de la batterie. Jusque là pas de souci, je l'ai testée, la méthode est bien appelée.
    Après, je me suis dit que j'allais créer à l'intérieur de onReceive un autre broadcastReceiver pour calculer le niveau de batterie :

    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
     
    BroadcastReceiver batteryLevelReceiver2 = new BroadcastReceiver() {
     
    			public void onReceive(Context context, Intent intent) {
    				context.unregisterReceiver(this);
    				int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 1);
    				int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 1);
     
    				if (rawlevel >= 0 && scale > 0) {
    					level2 = (rawlevel * 100) / scale;
    				}
    			}
     
    		};
     
    		IntentFilter batteryLevelFilter2 = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    		registerReceiver(batteryLevelReceiver2, batteryLevelFilter2);
    Bref, le problème c'est que j'ai l'impression qu'il ne veut pas faire un registerReceiver si ce n'est pas dans la main. Et si je le fais dans le main, il ne le reconnait pas comme étant dans BatteryAlarm...(je ne sais pas si c'est très clair)

    J'avais aussi pensé à faire le broadcast receiver batteryLevelReceiver2 dans le main, et à appeler la méthode qui le contient à partir de BatteryAlarm...
    Mais la méthode ne peut pas être static si on y fait un registerReceiver...

    Enfin bref, si vous aviez des solutions "architecturales" à me proposer, c'est avec grand plaisir que je les testerai!

    merci d'avance!

    ++

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 26
    Par défaut
    C'est bon, à force d'essais répétés, je m'en suis sorti!! Si ça intéresse qqn, voilà ce que j'ai mis dans ma méthode onReceive de BatteryAlarm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 1);
    int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 1);
     
    		if (rawlevel >= 0 && scale > 0) {
     
    			level2 = (rawlevel * 100) / scale;
     
    		}
    Voilà, level2 est le niveau de la batterie en %.
    (Dans mon cas je déclenche une alarme s'il est égal à 10%)

    A+!!

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

Discussions similaires

  1. Générer un identifiant relatif > l'entité faible en prati
    Par vmolines dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 19/08/2005, 15h59
  2. gestion d'alarme par SMS
    Par kitsune dans le forum Développement
    Réponses: 2
    Dernier message: 19/07/2005, 12h31
  3. ENTITE FAIBLE
    Par Whismeril dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/01/2005, 22h53
  4. Problème suivi de la batterie
    Par Tellmarch dans le forum Matériel
    Réponses: 6
    Dernier message: 04/10/2004, 20h44
  5. [langage] alarm( MILLISECONDES ?????)
    Par armada dans le forum Langage
    Réponses: 8
    Dernier message: 10/06/2003, 09h00

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