Volumetasten zur Navigation benutzen

S

schmandroid

Neues Mitglied
0
Hallo zusammen,

in einem ListView nutze ich folgenden Code um die Funktion der Lautstärketasten zu ändern:

Code:
@Override
	public boolean dispatchKeyEvent(KeyEvent event) {
		// die Tastenbelegung wird nur geändert wenn Barrierefreiheit eingestellt ist
		if (barrierefrei) {
			// die action beschreibt wie die Taste betätigt wird
			int action = event.getAction();
			// der keycode beschreibt welche Taste betätigt wird 
			int keyCode = event.getKeyCode();
			switch (keyCode) {
			case KeyEvent.KEYCODE_VOLUME_DOWN:
				if (action == KeyEvent.ACTION_DOWN) {
					// Falls die Taste "leiser" gedrückt wird soll ein "abwärts" KeyEvent gesendet werden
					//if (barrierefrei) vibrator.vibrate(100);
					dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_DOWN));
					dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_DOWN));
				}
				return true;
			case KeyEvent.KEYCODE_VOLUME_UP:
				if (action == KeyEvent.ACTION_DOWN) {
					// Falls die Taste "lauter" gedrückt wird soll ein "aufwärts" KeyEvent gesendet werden
					//if (barrierefrei) vibrator.vibrate(100);
					dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_UP));
					dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_UP));
				}
				return true;
			case KeyEvent.KEYCODE_MENU:
				if (action == KeyEvent.ACTION_DOWN) {
					// Falls die Taste "Menu" gedrückt wird soll ein "center" KeyEvent gesendet werden
					dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_CENTER));
					dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_CENTER));
				}
				return true;
			default: 
				return super.dispatchKeyEvent(event);
			}
		}
		else {
			return super.dispatchKeyEvent(event);
		}
	}

es wird also z.B. beim VolumeDown-KeyCode stattdessen ein DpadDown-Event gesendet.
Das ganze klappt so weit ganz gut und ermöglicht mir das Programmieren barrierefreier Anwendungen.
Wenn ich den gleichen Code jedoch in einer "normalen" Activity nutze passiert absolut nichts wenn ich die Lautstärketasten bediene (also auch kein lauter/leiser).
Im Emulator funktioniert die Navigation mit dem virtuellen DPad. Kann mir jemand sagen Danke schonmal & viele Grüße!
 
Die Änderung des Menübuttons, so dass dieser wie DpadCenter funktioniert, läuft übrigens. Nur bei den Lautstärkebuttons klappt nach wie vor nichts...:confused:
 

Ähnliche Themen

A
  • AnimaAngelo85
Antworten
1
Aufrufe
337
swa00
swa00
Tiefkuehlpizza
Antworten
1
Aufrufe
859
Tiefkuehlpizza
Tiefkuehlpizza
Tiefkuehlpizza
Antworten
2
Aufrufe
955
Tiefkuehlpizza
Tiefkuehlpizza
Zurück
Oben Unten