0

我正在为我的外部键盘外围设备构建一个应用程序,当 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 实际亮起。

4

0 回答 0