|
周末回家,准备使用cubieboard替换作为客厅主机的台式机
使用的系统是nand版本的android,媒体软件以xbmc为主,使用遥控操作
在修改遥控操作配置文件时遇到了麻烦
配置遥控,主要还是参考了网上的帖子
http://blog.csdn.net/a181622974/article/details/8017467
按贴子上描述的步骤,getevent获得按键码,又修改了sun4i-ir.kl文件,传回android系统
一切就绪开始使用遥控了,但是很失望,完全没有期望的结果,于是又复制了一份到/system/usr/idc/sun4i-ir.kl中
还是没有结果,将系统重新启动再按遥控,还是没有结果,网上能找到的资料真是太少了.
其间也有一些收获,我发现数字按键还是有反应的,只不过结果不正确而已,随后认真对比各键值的对应关系,没有找到问题,无论如何修改,遥控上的按键功能
都没有被改变,好像这个sun4i-ir.kl文件没有起作用,但是在修改之前有些按键也的确是有作用的,与文件中描述的是一致的,被修改后对应的功能也的确改变了,这又说明这个sun4i-ir.kl文件实实在在的起到作用了,那到底是有用还是无用?贴子里没有说明,只是说修改sun4i-ir.kl这个文件而已.
在尝试了各种配置后,发现有些按键始终不能改变其功能,由此猜测会不会这个按键的功能是在别的文件里说明的呢?
于是将所有/system/usr/keylayout/目录内的文件打包到本地后删除所有文件,重启系统后发现连键盘的输入功能也没有了,然后挨个恢复文件,首先恢复的是Generic.kl
文件,然后结束zygote进程(注:这个是android虚拟机进程,结束后会自动重新启动,这个进程重启后修改过的按键配置也会生效,不必重新启动整个系统)
发现键盘又恢复了功能,由此认定这个才是主要的配置文件,同时遥控按键也是能起到作用的,虽然不正确.
于是开始修改这个文件,但是改完后发现又没有效果了,连带键盘也不能使用,尝试了多次都没有找到真正的原因,后来只好恢复到原有状态.
不过这个时候已经找到之前那个问题的原因了,修改sun4i-ir.kl文件之所以部分有效,是因为Generic.kl文件与sun4i-ir.kl文件有相同键值的描述,因为冲突而没有效.所以在修改sun4i-ir.kl之前要确保Generic.kl中冲突的键值被屏蔽了.这点就好比是Generic.kl的优先级高于其他文件,如果有冲突则以这个文件为基准.
最后是屏蔽了Generic.kl文件中所有要用到的键值(而非直接添加),在sun4i-ir文件中再重新描述其功能,这样修改后遥控就能够使用了.
但是系统里面这样不区分键盘输入与红外遥控输入会存在问题,如果红外使用了正常的键盘值,那这样修改后会使用对应的键盘按键无效,例如ESC键对应的键值是1,那么修改后就不再是ESC了,这样直接使用扫描码映射还是不科学呀
最后要感谢也要吐槽:
1)在修改sun4i-ir.kl文件后有没有真正的使用过呢?
2)系统不区分键盘输入和红外遥控输入,会使得这两者不能共存
当然,我不知道其他的方法,也只好按我得出来的结果说事了.
另外:xbmc的节目插件很难找,好不容易找到一个,还有部分失效.pptv没有这个问题,毕竟是官方的,但是对按键支持的不好,必须用鼠标,这个问题让人头疼.
|
|