Allumer la LED d'un androphone

 

Explications

Bon, je ne vais pas trop m'attarder là dessus, personnellement, je ne vois pas trop l'intérêt de ce truc ! A part pour ceux qui ne peuvent s'empêcher de se retourner toutes les 5 minutes sur leur portable dès qu'il est à plus d'un mètre de leurs petites mains !

Image non trouvée !Ne pas confondre cette LED tricolore avec le flash de l'appareil photo/caméra. Ceux sont bien deux choses différentes. La LED en question est celle qui est utilisée par exemple lorsque votre portable est en cours de chargement.

Image non trouvée !Rien à voir, mais cela fais du bien: Pour les soi-disant professionels, une LED, c'est une DEL, càd une simple Diode qui est ElectroLuminescente soit en anglais Light-Emitting Diode !

 

Preparation à l'allumage la LED

L'allumage de la led passe par les notifications. Pour allumer la LED, différents paramètres sont à positionner.

La classe Notification inclue des propriétés permettant de paramétrer la fréquence d'allumage et d'extinction de la LED, ainsi que les couleurs de celle-ci (Dans tous les cas, le rendu ne sera qu'approximatif).

Il faut tout d'abord instancier une classe Notification

Notification notification = new Notification();

Puis renseigner les paramètres pour le flash:

notification.ledARGB : La couleur pourra être indiquée par la classe Color (par exemple Color.RED pour la couleur rouge) ou directement avec les composantes de la couleur.

Image non trouvée !Avec alpha à 0, la led ne sera pas allumée.

notification.ledOffMS : Durée en MS pendant laquelle la led sera éteinte.

notification.ledOnMS : Durée en MS pendant laquelle la led sera allumée.

Pour allumer la led, il suffit d'ajouter aux flags le flag suivant : Notification.FLAG_SHOW_LIGHTS.

Soit notification.flags |= Notification.FLAG_SHOW_LIGHTS; (| pour ne pas effacer d'éventuel flag que vous auriez positionné par ailleurs)

 

Pour allumer la led en continue, il suffit de positionner:

notification.ledOffMS = 0;
notification.ledOnMS = 1;

Pour l'éteindre:

notification.ledOffMS = 1;
notification.ledOnMS = 0;

 

Maintenant allumons cette LED

Enfin, passer tous ces paramètres à une instance de classe Notification Manager:

NotificationManager mNM;

mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

mNM.notify(IdNotification, notification);

Avec IdNotification qui est un identifiant de votre notification. A vous de gérer cet identifiant. Si vous envoyez deux notifications à la suite avec le même identifiant, la premiere notification sera simplement remplacée par la seconde.

notification : instance de la notification contenant les informations que vous voulez utiliser.

 

Lumière par défaut du système

Image non trouvée !Il est possible d'utiliser des valeurs par défaut. Pour cela, nous utiliserons la propriété notification.default avec le drapeau suivant: Notification.DEFAULT_LIGHTS.

en faisant notification.defaults |= DEFAULT_LIGHTS (| dans le cas où vous auriez déjà positionné d'autres flags !)

Cette valeur positionnée obligeant le système à ignorer Notification.FLAG_SHOW_LIGHTS, ainsi que les valeurs transmises à ledOffMS, ledOnMS et ledARGB.

 

Arrêt de la notification

Notification oblige, pour arrêter la LED, il faudra faire mNM.cancel( IdNotification ); depuis le notification manager

 

Autres

Cf. les notifications. Vous pourrez positionner FLAG_INSISTENT, FLAG_ONGOING_EVENT, FLAG_NO_CLEAR ou encore ajouter la vibration, ...