Si un usuario presiona la tecla de volumen hacia arriba o hacia abajo, ¿es posible detectarlo en mi receptor de difusión? Necesito el código completo.Android BroadCastReceiver para tecla de volumen hacia arriba y hacia abajo
Aquí es mi filtro Intención
IntentFilter filter = new IntentFilter();
filter.addAction("android.media.VOLUME_CHANGED_ACTION");
y mi método es onReceive
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");
}
}
Me da una KeyEvent nula ... alguna idea?
gracias por su respuesta, pero me da el mismo valor de volumen = 1 cuando el teléfono está en silencio o vibra o en el volumen del timbre está en el primer paso. ¿Cómo puedo detectar el teléfono está en silencio o vibrar o no primer valor? –
puede usar AudioManager para detectar si se encuentra en modo de vibración, silencioso o normal: http://stackoverflow.com/questions/2048427/how-can-i-detect-whether-the-android-phone-in-silent -mode-programatically – Theus
En el cambio de volumen al máximo, inicié la aplicación, pero cuando el reproductor de música se ejecuta en el dispositivo, en ese caso no quiero abrir mi aplicación además del cambio de volumen. Cualquier ayuda –