如何在 USB HID 报告中发送重音字符和 unicode

How can I send accented characters and unicode in a USB HID report

我正在 android 上构建蓝牙 HID 键盘应用程序,但我一直在使用发送重音字符的最佳方式(àèé,...) 和 Unicode 在我的键盘报告中。

我已经有了一份工作报告map/descriptor。在 Usage Page there is no usage id for à but this arduino project 中似乎能够以一种我无法弄清楚它为什么起作用的方式发送它。 ASCII 映射已 a 映射到 0x14,但在 HID 规范中它应该是 0x04.

所以,

  1. 有人能解释一下为什么 0x14 而不是 0x04 'a' 在链接项目中工作?

  2. 有没有比为ALT Codes模拟OS特定快捷方式更好的方法来获取unicode字符?

正如@aja 所说,键盘布局是一场噩梦。

要发送重音字符,您必须发送键盘快捷键。一键whose you know the code + a modifier. So this depends of each keyboard layout.

对于 Unicode 字符(另一个噩梦),我所做的是 OS 依赖,例如 windows,我模仿 Alt Codes.

如果您找到更好的方法,请ping me