我正在为我的外部键盘外围设备构建一个应用程序,当 IMU 检测到单击时将打开 caps_lock 并在 IMU 检测到双击时打开 num_lock。
我能够很好地检测到水龙头,并且可以通过向终端打印确认来使手机做出响应。
我似乎无法做的是在我的外部键盘上触发 CAPS_LOCK 或 NUM_LOCK 作为响应。
我努力了:
private void simulateKeyPress(int keyCode){
BaseInputConnection mInputConnection = new BaseInputConnection( findViewById(R.id.report), true);
KeyEvent kd = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
KeyEvent ku = new KeyEvent(KeyEvent.ACTION_UP, keyCode);
mInputConnection.sendKeyEvent(kd);
mInputConnection.sendKeyEvent(ku);
}
private void simulateKeyPress2(int keyCode){
KeyEvent kd = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
KeyEvent ku = new KeyEvent(KeyEvent.ACTION_UP, keyCode);
dispatchKeyEvent(kd);
dispatchKeyEvent(ku);
}
R.id.report
文本字段在哪里。我可以通过这种方法插入文本,但我无法让键盘响应锁定命令。
如果我在插入手机的同时按下键盘上的 caps lock 和 num lock 键,LED 会亮起,但如果触发了上述按键事件,它们不会亮起。同样,我可以从键盘键入字符并将它们检测为 KeyboardEvents。
我可以直接通过代码设置这些值(大写锁定开/关,数字锁定开/关)吗?
需要明确的是,我需要键盘上的 LED 实际亮起。