您的位置:首页 > 移动开发 > Android开发

Android TV 键值修改流程

2015-07-01 22:14 627 查看
有的时候,我们需要增加一些新的按键,那么需要修改哪些地方呢?

1.Java层的修改:KeyEvent.java

修改了keyevent.java需要编译出android.policy.jar这个需要拷进去,(在/frameworks/base/policy这个目录下执行mm -B得到android.policy.jar拷贝到电视)

2.Native层的修改:KeycodeLabels.h

修改Keycodelables.h需要编译出libandroidfw.so,这个要拷进去(因为在Keyboard.cpp中有使用)

3.修改了*****.kl这个需要拷进去,kl文件的作用可以网上搜,其实也是一个映射文件,只不过这个kl的文件的加载方式通常和具体的输入设备标识有关。

因此一般针对不同的设备有不同的文件定义。(你可以通过getevent 查看事件是从哪个设备上来的,然后 dumpsys input 可以查看这个设备使用的kl文件是哪一个)

4.修改了defaultkeymap.lst,novatek-blast.kl,Tvkeymap.lst需要编译出boot.img烧进去(这部分主要用于Hid通道上报上来的键值映射)

5.修改了input.h需要编译出kernel放到BSP目录下,然后编成boot.img烧写进去(或者将input驱动,比如rc-**-tv.ko编出来替换到TV也可以,这种直接替换驱动文件,最为简单)

拓展:如果要新增事件类型,比如想为某个新的传感器定义了一些新的事件类型,同样也可以仿照这个处理流程来添加。

Android 5.0:

框架层有变化:

对scancode的映射放到了:

frameworks/native/include/android/keycodes.h

frameworks/native/include/input/InputEventLabels.h

其他的不变

具体按键上抛流程见前面写的博客,以能够有个纵向的了解:Android TV 按键流转探究
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: