I am working with React Native and the Accessibility(TalkBack). The problem I am facing - when TalkBack is on, my KeyEvent listener does not register my navigation buttons on remote control. It feels like TalkBack hijacks them for it’s own navigation. I’ll attach my KeyEvent listener in JAVA. I need my KeyEvents working when TalkBack is on.
/ @Override // <--- Add this method if you want to react to keyDown
public boolean onKeyDown(int keyCode, KeyEvent event) {
// A. Prevent multiple events on long button press
// In the default behavior multiple events are fired if a button
// is pressed for a while. You can prevent this behavior if you
// forward only the first event:
int keyCode1 = event.getKeyCode();
Log.d("keyDownTest:", Integer.toString(keyCode1));
if (event.getRepeatCount() == 0) {
KeyEventModule.getInstance().onKeyDownEvent(keyCode, event);
}
//
// B. If multiple Events shall be fired when the button is pressed
// for a while use this code:
// KeyEventModule.getInstance().onKeyDownEvent(keyCode, event);
//
// Using B.
// KeyEventModule.getInstance().onKeyDownEvent(keyCode, event);
// There are 2 ways this can be done:
// 1. Override the default keyboard event behavior
// super.onKeyDown(keyCode, event);
// return true;
// 2. Keep default keyboard event behavior
// return super.onKeyDown(keyCode, event);
// Using method #1 without blocking multiple
super.onKeyDown(keyCode, event);
return true;
}