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 !
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.
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.
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
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, ...