java - KeyEvent 特殊键(如静音)

标签 java android keyevent media-keys

我目前正在尝试为 Android 创建一个小型远程应用程序来控制我 PC 上的 MediaPlayer(如 Rythmbox)。

大多数媒体播放器都能理解我键盘上的特殊键(如“播放/暂停”或“下一首/上一首”)。我的想法是 Android 应用程序向 PC 发送命令(如“暂停”)。在 PC 上运行一个普通的 Java 应用程序,它接收这个命令并模拟这个特殊按钮的按键。

优点是您可以在所有平台上为支持此特殊键的每个播放器使用此应用程序(它们几乎在每个新的 USB 键盘上都有)。

我在 JavaDocs 中搜索了 KeyEvent 类中的常量,但找不到任何内容。有谁知道如何模拟按下这些按钮之一,如果使用 Java 甚至可以做到这一点?

只要没有其他解决方案,我也可以使用其他库。

此外,我知道我应该使用 Robot 来模拟按键,这适用于我键盘上的所有普通键。我根本找不到任何方法来模拟这些特殊键上的按键操作。

最佳答案

所以,我认为用纯 Java 做这件事是不可能的。我尝试了其他方法来找出特殊键的键码,但这个小程序只为这些键返回 0(它适用于“普通”键):

public class GetKeycode implements KeyListener{

    private JFrame f;
    private JLabel feld;

    public GetKeycode(){
        f = new JFrame("GetKeycode");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.addKeyListener(this);
        feld = new JLabel();
        f.add(feld);
        f.pack();
        f.setVisible(true);
    }

    @Override
    public void keyReleased(KeyEvent e) {
        feld.setText(e.getKeyCode()+"");        
    }

    public static void main(String[] args) {
        new GetKeycode();
    }

    // Unused:
    @Override public void keyPressed(KeyEvent e) {}
    @Override public void keyTyped(KeyEvent arg0) {}

}

我希望这将在 JRE 的 future 版本中实现。但目前,似乎没有解决方案。

无论如何,感谢您的所有回答。

关于java - KeyEvent 特殊键(如静音),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6236303/

相关文章:

java - 从 Scala 代码下载涉及 Http 身份验证的文件

java - 如何将匹配器添加到 HttpSecurity spring web secure

java - 如何将类字段映射到另一个类?

android - 测试:哪个国家不支持计费库?

android - 如何将字体样式添加到TextView Android Kotlin

java - 是否有用于 KeyEvent 的 postActionEvent 版本(专门用于 JTextArea)?

java - 我收到 "java.lang.ClassNotFoundException: com.google.gson.Gson"错误,即使它是在我的类路径中定义的

android - 在gradle中执行shell脚本看不到echo输出

java - 如何收听在 Java 中按下/键入的 TAB 键?

java - 如何编程仅向我的应用程序触发关键事件?