我目前正在尝试为 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/