如何解决编写一个使用KeyEvents将文本插入文本字段的Android系统应用但是扩展的unicode字符不可打印
因此,我可以将CTL +用于控制字符,将SHIFT +用于诸如A,B之类的大写字母和诸如!,{(即基本拉丁字符和标点符号)之类的字符。
但是我无法在Android中找到Ã,dž...等符号的组合。 Ubuntu使用CTRL + SHIFT + U ..的组合,后跟四个生成符号的数字,但这似乎无法翻译为Android。
TL; DR:如何使用Android KeyEvents和KeyCharacter Map生成特殊符号?
更新:了解到该资源:https://source.android.com/devices/input/key-character-map-files,看起来我将不得不使用组合键,他们谈论的是魔术十六进制输入,但是我尝试使用
1111,后跟Alt + Shift + X(qwerty.kcm文件包含此文件)...但是它不会在相应的1111上键入Unicode符号。
有人可以帮忙吗?
解决方法
能够弄清楚。
第1步:更新Android操作系统的kcm文件(大多数情况下为Generic.kcm)。下面的示例带有“ X”按钮,但实际上它可以应用于任何按钮。添加alt + shift行为,并将魔术十六进制代码添加到alt + shift + X的组合中。
key X {
label: 'X'
base: 'x'
shift,capslock: 'X'
alt+shift: '\uef00'
}
步骤2: 在应用程序服务中为1,2,3,4生成一个键盘事件,然后为Alt + Shift + X生成一个键盘事件,您将能够打印字符“ሴ”。
阅读这些参考资料以获取更多信息。
https://source.android.com/devices/input/key-character-map-files
https://developer.android.com/reference/android/view/KeyEvent
https://android.stackexchange.com/questions/38405/how-to-insert-unicode-characters-by-their-hex-codes-using-usb-keyboard-on-ics
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。