从 Android Java 在硬件键盘上设置 CAPS_LOCK 和 NUM_LOCK

问题描述

我正在为我的外部键盘外围设备构建一个应用程序,当 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);
    dispatchKeyEvent(kd);
    dispatchKeyEvent(ku);
  }

其中 R.id.report 是文本字段。这种方法可以插入文字,但是无法让键盘响应锁定命令。

如果我在将键盘插入手机时按下键盘上的 caps lock 和 num lock 键,LED 会亮起,但在触发上述按键事件时,它们不会亮起。同样,我可以从键盘输入字符并将它们检测为 KeyboardEvents。

我可以直接通过代码设置这些值(大写锁定开/关,数字锁定开/关)吗?

明确地说,我需要键盘上的 LED 灯才能亮起来。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)