//这里使用的按键定义在./development/ndk/platforms/android-9/include/android/keycodes.h
通过以上的更改,新的键值就添加上去了,由于更改了 KeyEvent,影响到了API,
所以需要make update-api
如果对新键值进行处理,可以通过获取相应的keycode,对它进行处理;
对于按键事件的处理一般如下文件中
6. frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java
综上可知,我们可以根据需求定义自己的键值,并对键值所对应的事件信息进行合理化处理 。
注:
7k_ffa_keypad.kl是专门给7k_ffa_keypad输入设备使用的keylayout文件,所以修改7k_ffa_keypad.kl 文件只是给键盘输入增加键值 。如果是其他设备的输入,如x_input,而且当没有x_iput.kl存在的时候,那么默认的kl文件就是 qwerty.kl(android-root/development/emulator/keymaps/qwerty.kl)
这个很重要 。也就是说需要实现明白添加的键值是否是7k_ffa_keypad的input event
我的理解:看了一下key character map的处理,是通过读取kcm文件然后使用驱动程序提供的ioctl函数去修改来自输入设备的扫描码和系统预定义的keycode的映射关系 。kl文件应该也可以这么理解 。这样的话,对于硬件扫描码,只需要修改这个kl文件 。上层得到的都是系统预定义的keycode 。
重要补充:
映射关系:ir硬件扫描码在驱动里面被 映射为 kernel/include/linux/input.h里面定义的某个键值 。但是这个键值只在linux系统中使用 。
Android通过源码目录下的device/xxx/xxx.kl( keylayout )文件完成linux键值到Android系统要使用的键值的映射
根据两个源码的对比:
KeycodeLabels.h
attrs.xml
keycodes.h
三个文件有改动
特别注意:
在文件device/xxx/xxx/xxx.kl(即键值对)文件中,重新建立按键扫描码与系统自定义的按键名称的映射关系
按键扫描码可以通过串口中输入getevent,然后点击按钮时看打印信息获得
扫描码不能重复,否则该文件失效
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
简单说,大部分标准实体按键,是修改*.kl文件 。
坚果应该也类似 。
推荐阅读
- 手机哪个好用 手机哪个好
- 三星手机中关村报价大全 三星手机中关村报价
- vivo新品手机 vivo智能机
- 2018荆州房价还会涨吗,荆州房价目前7000
- 天涯 预测房价,5年后黑龙江房价预测
- 八仙过海 什么时代,关于八仙过海成语故事
- 太史慈穿什么,攻城掠地太史慈穿
- 前几年干什么行业致富,2022年干什么行业
- 汽修美容行业怎么样,加盟汽修美容怎么样
- 72街排骨饭加盟费多少,排骨饭烤肉饭加盟费多少