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
Vous devez vous connecter pour publier un commentaire.
L'intention n'a pas un EXTRA_KEY_EVENT supplémentaire. Il n'a plus de android.médias.EXTRA_VOLUME_STREAM_VALUE qui contient le nouveau volume.
Si vous stockez l'ancienne valeur, vous pouvez déduire si le volume vers le haut ou vers le bas a été pressé.
vous pouvez utiliser le AudioManager pour détecter si vous êtes dans vibreur, silencieux ou en mode normal: stackoverflow.com/questions/2048427/...
Sur le changement de volume au max, j'ai commencé à l'application mais lorsque le lecteur de musique en cours d'exécution sur l'appareil, alors dans ce cas je ne veux pas ouvrir mon application sur le dessus de la variation du volume.Toute aide
OriginalL'auteur Theus