2010-03-02 3 views

Antwort

31

Ich stelle mir es so etwas wie folgt aussieht:

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üße. Du musst 'wahr' zurückgeben; ' nachdem du dein Ding gemacht hast, um das standardmäßige Lautstärkeverhalten des Telefons zu unterdrücken. –

+7

Um das Standardverhalten vollständig zu unterdrücken, sollten Sie auch die Ereignisse abfangen und in einer onKeyUp() - Überschreibung true zurückgeben. –

+3

Oder Sie können dispatchKeyEvent (KeyEvent-Ereignis) -Methode überschreiben. –

24

in Ihrer Tätigkeit,

@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

Dies ist die richtige Antwort. Die Verwendung von onKeyDown oder onKeyUp gibt weiterhin das Standardgeräusch für das Ändern der Lautstärke. – korbes

Verwandte Themen