嗨,我正在建立一个无障碍服务。我想处理键盘输入,并确定BACK键事件。我想我最好的方法是覆盖onKeyEvent()回调。但是我发现它甚至从未被调用过。我尝试在配置XML以及添加的android:canRequestFilterKeyEvents="true模块中添加onServiceConnected

info.flags=AccessibilityServiceInfo.FLAG_REQUEST_FILTER_KEY_EVENTS;
        info.flags=AccessibilityServiceInfo.FLAG_REPORT_VIEW_IDS;
        setServiceInfo(info);


但是仍然没有运气。看起来偶onKeyEvent永远不会提高。

最佳答案

如果要处理“主页”按钮和“后退”按钮的事件,则必须添加以下内容:
在您的xml服务声明中:

1-android:canRequestFilterKeyEvents="true"
2-Add flagRequestFilterKeyEvents to your android:accessibilityFlags

在您的辅助功能服务类中,添加onKeyEvent:
  @Override
        public boolean onKeyEvent(KeyEvent event) {
            int keyCode = event.getKeyCode();

            switch (keyCode) {
                case KeyEvent.KEYCODE_BACK:
                    Log.e(TAG, "Back");

                case KeyEvent.KEYCODE_HOME:
                    Log.e(TAG, "Home");
                    return false;
            }
            return super.onKeyEvent(event);
        }

10-06 01:26