1.Android事件传递是从kernel开始传递,由遥控红外发送给按键板子,然后进行事件解析,遥控最后会解析到是那个遥控按键
2.kernel把事件再传递到framework,那么就去到PhoneWindowManager.java,这是核心的管理上层的事件文件,还有一个是WindowManager.java,那么所定义的按键就可以在这里进行全局设置逻辑了。
3.因为在kernel定义了按键,同样地也需要在framework里定义一系列的按键映射.需要对应修改KeyEvent.java,current.txt,KeycodeLabels.h,attrs.xml和keycodes.h。
4.最后还要在系统编译里,加上预制的遥控定义,用来映射kernel和framework之间的联系.文件名是XXXXX_Product_0001.kl
*各个文件的对应关系是xxxtv.c遥控文件里的key名对应input.h的key名
预制的XXXXX_Product_0001.kl的value对应input.h的value
XXXXX_Product_0001.kl的key名对应所有framework的key名,当然framework的value要自己定义啦
具体是在KeyEvent.java定义,注意的是要把新增的按键设置为LAST_KEYCODE
本文详细解析了Android系统中遥控事件的传递与处理过程。从kernel接收红外信号开始,经由按键板解析并最终映射到特定按键。事件随后传递至framework层的PhoneWindowManager.java与WindowManager.java进行全局设置与逻辑处理。为了使新按键生效,需在KeyEvent.java等文件中定义按键映射,并在系统编译中加入预设的遥控定义文件,确保kernel与framework间的通信无误。
1961

被折叠的 条评论
为什么被折叠?



