Android平台增加新定义的按键

这次我们是需要通过触摸屏产生一个虚拟按键信息上报,而且需求是不能是系统中原有的按键,由于本人菜鸟完全不会,只能不停网上搜索,还好还能找到了一个很有参考意义的文章 (Android下添加新定义的自定义键值和按键处理流程),但是由于不知道哪个是原创,所以就只列出名字。但是文章里面有部分文件的名字不符,因此也走了不少弯路,特将自己这次的调试写出,希望能给和我一样的菜鸟同学提供参考(本人使用的MSM8909W平台):

1、因为是虚拟按键,所以省略了在msm8909-pm8916-qrd.dtsi中添加对应gpio和键值的步骤。

2、在文件中kernel/include/uapi/linux/input.h中增加新的定义

          #define KEY_MYADD   249 /*my add key function*/

3、在触摸屏驱动中将上报的key填写为 KEY_MYADD

4、在文件frameworks/base/data/keyboards/Generic.kl中增加键值映射

        key 249   MYADD

5、在文件frameworks/native/include/android/keycodes.h中添加

        AKEYCODE_MYADD = 284

6、在文件frameworks/native/include/input/InputEventLabels.h里的数组 static const InputEventLabel KEYCODES[] 中添加     DEFINE_KEYCODE(MYADD),

7、在文件frameworks/base/core/java/android/view/KeyEvent.java中添加

        public static final int KEYCODE_MYADD = 284;

8、在文件frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java中添加相应的按键事件处理(我们是在interceptKeyBeforeQueueing里添加)

这样新增加一个按键定义的流程就OK了,编译需要先使用命令make update-api,不然会编译出错(哭因为这我一个小时没了)。另外希望有人告知如何确认使用的是哪个目录下的什么命名的kl文件呢?在找到本平台使用的Generic.kl文件用了我半天,而且还是撞上的……

        


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值