• 10jan

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



    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.


    Vidéo de formation pour Android

    Guy

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

    Twitter Google+ 

7 commentaires

  1. 10 janvier 2010 à 21 h 49 min

    ” 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. 10 janvier 2010 à 21 h 52 min

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

  3. 11 janvier 2010 à 8 h 53 min

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

  4. 11 janvier 2010 à 10 h 53 min

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

  5. 30 janvier 2011 à 10 h 30 min

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

  6. 7 avril 2011 à 21 h 48 min

    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

     Vous devez être identifié pour publier un commentaire.
     Connexion - Inscription