看起来很愚蠢,但我无法从KeyEvent获取元状态,从onKeyListener访问。试用了我的所有键盘和模拟器。无法从Android KeyEvent获取元状态
是否按住Shift,Ctrl等键,keyEvent.getMetaState()返回0.它可以用于TextListener,但我不需要它输入文本,我只是想区分Tab和Shift + Tab键。
感谢您期待的帮助。
更新。我刚刚发现的是,meta状态是为字母键报告的,而不是其他键。
例如,如果我按下左Shift + T系统为KEYCODE_SHIFT_LEFT和KEYCODE_T生成KeyEvent,并且KEYCODE_T的KeyEvent已设置META_SHIFT_ON。您可以使用Shift + TAB + T欺骗系统,在这种情况下,为KEYCODE_T和KEYCODE_TAB设置META_SHIFT_ON。但是,使用Shift + TAB不会生成KEYCODE_SHIFT_LEFT的KeyEvent,并且元状态保持不变。
也许系统键盘配置文件需要更新,以允许组合像Shift + TAB?