Согласно android documentation, обнаружение ключа релиз должен быть простым, как:Android: как распознавать нажатия клавиш и выпустить события?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
System.out.println("pressed");
event.startTracking();
return true;
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
System.out.println("released");
return true;
}
но при попытке реализовать его, он не работает, как ожидалось.
Мне нужно определить, когда нажата клавиша клавиатуры Bluetooth, и принимать только один вызов onKeyDown, когда это происходит, и обнаруживать, когда тот же самый ключ освобожден. Я делаю что-то неправильно или есть другой способ получить этот желаемый результат?
При нажатии и удержании любой клавиши, я получаю это несколько раз на консоли:
I/System.out: pressed
I/System.out: released
I/System.out: pressed
I/System.out: released
I/System.out: pressed
I/System.out: released
I/System.out: pressed
I/System.out: released
Спасибо.
«это не работает должным образом» - вы можете подробно объяснить, что вы ожидаете и какие результаты вы получаете. Например, что такое «много звонков, пока он нажат»? – CommonsWare
, когда я нажимаю клавишу и удерживаю ее нажатой, я получаю многократно: I/System.out: нажата, I/System.out: выпущена. Я ожидаю, что он «нажал» один раз, когда я его нажму, и «отпустил», когда отпустил его, вместо этого «нажал» и «отпустил» повторно звонил, пока я нажимаю какой-либо заданный ключ ... – RodrigoFranco
Попробуйте вернуться 'false' из обоих методов. – CommonsWare