Android BroadCastReceiver pour la touche de volume haut et bas

Si un utilisateur appuie sur la touche de volume vers le haut ou vers le bas est-il possible de le détecter dans mon récepteur de radiodiffusion? J'ai besoin le code complet.

Ici est de mon Intention de filtre

IntentFilter filter = new IntentFilter();
filter.addAction("android.media.VOLUME_CHANGED_ACTION");

et mon onReceive méthode est

public void onReceive(Context arg0, Intent intent) {
      KeyEvent ke = (KeyEvent)intent.getExtras().get(Intent.EXTRA_KEY_EVENT);
        if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) {
                System.out.println("I got volume up event");
         }else if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
                System.out.println("I got volume key down event");
         }
    }

Il me donne une valeur null KeyEvent... une idée?

OriginalL'auteur malik M | 2012-09-24