我正在分析连接到我的Nexus 5设备的蓝牙QWERTY键盘生成的keyEvents。除了Windows键,我可以获得所有关键笔划。
键盘输入设备配置为
蓝牙3.0键盘 类:0x80000003 路径:/ dev / input / event6 描述符:c9a38dcf18d4596752ec436bf05aa70be1fe36b0 地点: ControllerNumber:0 UniqueId:25:95:20:00:73:EE 标识符:bus = 0x0005,vendor = 0x04e8,product = 0x7021,version = 0x0001 KeyLayoutFile:/system/usr/keylayout/Generic.kl KeyCharacterMapFile:/system/usr/keychars/Generic.kcm 的ConfigurationFile: HaveKeyboardLayoutOverlay:false
Windows键在按下时会生成以下扫描代码及其对应的Android密钥代码。
EV_MSC MSC_SCAN 000700e3
EV_KEY KEY_LEFTMETA向下
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 000700e3
EV_KEY KEY_LEFTMETA UP
EV_SYN SYN_REPORT 00000000
此应用已使用此KEYCODE_META_LEFT。无论我做什么,这都是启动Google即时/点击搜索。
我尝试了以下方法,但没有运气 1.试图覆盖我的活动中的搜索功能,希望捕获这个关键事件 2.尝试几乎所有关键事件调度方法,如dispatchKeyEventPreIme等来拦截它。 3.禁用现在点击,现在卡。安装了自定义启动器并删除了主屏幕上的搜索小部件。这仍然会启动搜索视图。
如果你能指出我正确的方向,那将会有很大的帮助
对更改仅适用于root设备的密钥布局文件不感兴趣 寻找一种无需调整库存ROM的方法。