2011-03-11 13 views
7

Solo me preguntaba si alguien podría decirme cómo capturar la pulsación larga de la tecla para bajar el volumen en Android.cómo capturar pulsación larga de la tecla de volumen hacia abajo en Android?

Elaborado pregunta:

Yo quería crear un BroadcastReceiver que recibirá el volumen de eventos pulsación prolongada. (sin ninguna interacción de UI). Sé que es posible para el botón de búsqueda. ¿está disponible para las teclas de volumen?

Gracias

+0

elaborar más por favor. – Sandy

+0

Quería crear un BroadcastReceiver que recibirá el evento de pulsación larga de volumen. (sin ninguna interacción de UI). Sé que es posible para el botón de búsqueda. ¿está disponible para las teclas de volumen? -Gracias – kakopappa

Respuesta

7

pueden estar por debajo de código le ayudará a:

@Override 
public boolean onKeyLongPress(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { 
    // to your stuff here 
    return true; 
    } 
    return super.onKeyLongPress(keyCode, event); 
} 
+0

Gracias, ¿es posible obtener KEYCODE_VOLUME_DOWN en un BroadcastReceiver? como kakopappa

+0

No creo que si eso es posible – ingsaurabh

+0

Hola, no sé cuál es exactamente tu requerimiento, pero lo que puedes hacer es usar lo anterior cuando tienes evento en alguna actividad puedes crear una transmisión personalizada que la tecla de volumen está presionada durante mucho tiempo y usarla en BL – ingsaurabh

1

Creo que es, en teoría, posiblemente para llevar a cabo la captura de pulsaciones de teclas largas del botón de volumen, pero es poco aconsejable. El proceso implicaría anular el método onKeyLongPress().

cuanto a por qué se aconseja enferma: Volume Control in android application y How can I manage audio volumes sanely in my Android app?

Se ha discutido antes y básicamente, las teclas tienen comportamientos predeterminados que no deben ser sobrescritos, ya que es posible "romper el comportamiento de las teclas de volumen ".

2

Tenga en cuenta que para manejar onKeyLongPress() debe realizar un seguimiento de evento enKeyDown(). y anularlos a ambos. tenga en cuenta los siguientes ejemplos.

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event){ 
    if(keyCode==KeyEvent.KEYCODE_VOLUME_UP){ 
     event.startTracking(); 
     return true; 
    } 
    return super.onKeyDown(keyCode,event); 
} 
@Override 
public boolean onKeyLongPress(int keyCode,KeyEvent event){ 
    if(keyCode==KeyEvent.KEYCODE_VOLUME_UP){ 
     //Do your stuff here 
     return true; 
    } 
    return onKeyLongPress(keyCode,event); 
} 

También tenga en cuenta que onKeyDown por defecto devuelve falso. Por lo tanto, al activar el volumen onKeyDown() no aumentará.

0

intento con este comando

entrada adb shell KeyEvent --longpress KEYCODE_VOLUME_DOWN

Cuestiones relacionadas