【问题标题】:Capture all Ctrl-? under Android捕获所有 Ctrl-?安卓下
【发布时间】:2012-09-09 06:50:40
【问题描述】:
我正在修改 ConnectBot 以利用硬件键盘,我需要捕获所有 Ctrl-?压力机。我已禁用所有字母菜单快捷方式(例如用于复制的 Ctrl-C),但 onKey 事件似乎仍未收到按键。
我对 Android 开发相当陌生(实际上是从今天开始修复 ConnectBot 以处理硬件键盘),快速的 Google 搜索似乎没有发现任何关于捕获 Ctrl-?按键。
我如何告诉 Android 将这些直接传递给 onKey 处理程序?
【问题讨论】:
标签:
android
keyboard-shortcuts
hardware
【解决方案1】:
事实证明,keyCode 被设置为正确的字符值(例如“C”)。但是,getUnicodeChar() 的结果是 0,因为 CTRL 被按住。
所需要的只是添加处理以获取 unicode 字符,而不考虑被按住的元键:
if (event.isCtrlPressed())
event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
后来有必要在正在发送的关键数据中对“CTRL 被按住”信息进行编码,这已经是 ConnectBot 代码提供的功能。