2010-03-02 10 views

Odpowiedz

31

sobie wyobrazić to wygląda mniej więcej tak:

public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP) { 
     // Do your thing 
     return true; 
    } else { 
     return super.onKeyDown(keyCode, event); 
    } 
} 
+5

słodki. Musisz "zwrócić prawdę"; po wykonaniu swojej czynności, aby ukryć domyślne zachowanie głośności telefonu. –

+7

Aby całkowicie wyeliminować domyślne zachowanie, należy także przechwycić zdarzenia i zwrócić wartość true w trybie nadpisania onKeyUp(). –

+3

Lub można zastąpić metodę dispatchKeyEvent (KeyEvent). –

24

w swojej działalności,

@Override 
    public boolean dispatchKeyEvent(KeyEvent event) { 
     int keyCode = event.getKeyCode(); 
     switch (keyCode) { 
     case KeyEvent.KEYCODE_VOLUME_UP: 
     case KeyEvent.KEYCODE_VOLUME_DOWN: 
      return true; 
     default: 
      return super.dispatchKeyEvent(event); 
     } 
    } 
+3

To jest poprawna odpowiedź. Użycie onKeyDown lub onKeyUp nadal wydaje domyślny dźwięk zmiany głośności. – korbes

Powiązane problemy