• Tutoriel | Faire vibrer le téléphone et lire mp3 au moment du reveil

    Publié le 10 janvier 2010 par Guy (GuyTouch)


    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):

    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);
    

    Explication

    1. On récupère une instance du service Vibrator.
    2. Pour faite vibrer le smartphone, il existe plusieurs surcharges de la méthode vibrate:
      1. Faire vibrer en suivant un pattern : vibrator.vibrate(new long[]{0,1000,500,1000,2000}, -1).
      2. Ici on fait vibrer de 0 à 1 seconde, puis une pause d’1/2 seconde, puis on recommence pendant 1 seconde.
        1. 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).
        2. 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):

    
    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

    1. On commence par créer un objet MediaPlayer à partir du context et du fichier de resource.
    2. Puis on lance le son avec la méthode start();
    3. Pour aller plus loin, j’ai ajouter un handler qui permet de stopper la lecture après 10 secondes en utilisant un Handler.


    Guy

    Co-fondateur du site Android france, senior lead developper, passionné de bière et de cigare cubain

    Twitter Google+ 

  • 6 Commentaires pour ce billet

    1. 1 - Rastaman971 dit:

      ” on m’a demandé ” ; ” Dans ce tutoriel j’expliquais” ; ” heure voulue ” ; ” deux parties ” ; ” Pour faire vibrer ” ; ” le second paramètre ” ; ” j’ai ajouté “. Attention à l’orthographe. Une petite relecture aurait éviter ces coquilles.

    2. 2 - Rastaman971 dit:

      ” aurait évité ” bien entendu dans mon précédent commentaire.

    3. 3 - Guy dit:

      @Rastaman971 corrigé, Merci des corrections du billet et des commentaires lol

    4. 4 - Benjamin dit:

      Oui, je te remercie également pour les corrections de fautes. C’est plus propre comme ça ;)

    5. 5 - Marou dit:

      Bjr,
      il y a-t-il une méthode pour arrêter la sonnerie?

    6. 6 - ryan dit:

      Bonjour, est ce que qqun connait le numero (ou code) pour faire vibrer son tel (samsung galaxy teos) ? Car je veux verifier que mon vibreur umarche.
      Merci

  • Laissez un commentaire

  • Les Brèves