Ce tutoriel est réalisé et proposé par bunjix, développeur d’application sous Android. Vous pouvez voir son blog sur http://bunjix.fr.
On m’a demander il y a quelque temps de faire un complément du tutoriel sur Développez votre propre réveil (Alarme) avec votre android phone. Dans ce tutoriel j’expliquais comment créer un réveil à une heure voulue. Le manque était qu’au réveil, il y avait juste un message qui s’affichait (c’était juste pour illustrer le tutoriel).
On va donc maintenant voir en deux parties comment ajouter des vibrations et du son.
Pour ajouter des vibrations lors du réveil il faut ajouter ce morceau de code (toujours dans la méthode onReceive):
[sourcecode language=’java’]
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
//vibre pendant 1 seconde, puis attend 1/2 secondes avant de recommencer.
vibrator.vibrate(new long[]{0,1000,500,1000,2000}, -1);
// ou vibre pendant 2 secondes.
//vibrator.vibrate(2000);
[/sourcecode]
Explication
- On récupère une instance du service Vibrator.
- Pour faite vibrer le smartphone, il existe plusieurs surcharges de la méthode vibrate:
- Faire vibrer en suivant un pattern : vibrator.vibrate(new long[]{0,1000,500,1000,2000}, -1).
- Ici on fait vibrer de 0 à 1 seconde, puis une pause d’1/2 seconde, puis on recommence pendant 1 seconde.
- Le second paramètre correspond au nombre de fois que l’on doit répéter la séquence (-1 pour ne pas répéter).
- Le second paramètre correspond au nombre de fois que l’on doit répéter la séquence (-1 pour ne pas répéter).
Pour ajouter un son il faut déjà ajouter dans le répertoire res/raw (ou créer ce repertoire si il n’existe pas encore) le fichier son que vous voulez lire. Ensuite, ajouter le code (toujours dans la méthode onRecive):
[sourcecode language=’java’]
final MediaPlayer mp = MediaPlayer.create(context, R.raw.fichier_son);
mp.start();
Handler h = new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what==0){
mp.stop();
}
super.handleMessage(msg);
}
};
Message m = new Message();
m.what = 0;
h.sendMessageDelayed(m, 10000);
Explication
- On commence par créer un objet MediaPlayer à partir du context et du fichier de resource.
- Puis on lance le son avec la méthode start();
- Pour aller plus loin, j’ai ajouter un handler qui permet de stopper la lecture après 10 secondes en utilisant un Handler.