RK3128平台android系统修改添加遥控器键值码值
本帖最后由 微笑,一路向前 于 2017-1-4 15:34 编辑最近帮客户定制RK3128平台的固件,涉及到定制新的遥控器,需要添加或修改遥控码值。RK3128平台Android系统修改遥控器码值比全志A20、A31s稍微麻烦一些,其实本质是一样的。
具体的修改方法如下:
1,先弄清楚遥控器的状况,包括遥控器用户码、键值对应的码值。方法:adb shell,输入echo1 >/sys/module/rockchip_pwm_remotectl/parameters/code_print,再输入,cat /proc/ksmg,也可以通过串口搞。遥控器对着灯板按,会发现终端界面有反应,会出现类似下面的信息
其中USERCODE=0xff00是遥控器用户码,fa是按键对应的码值。
2,就这样把遥控器按顺序按一遍,记录所有的键和对应的码值。
3,进入kernel/arch/arm/boot/dts目录,找到rk3128-box-rk88.dts文件,键值就定义在这个里面,复制出来编辑。**** Hidden Message *****
搞之前先看下系统和frameworks/base/core/java/android/view/KeyEvent.java里面有木有定义,查找Linux标准键值命令:在kernel目录下,输入,find . -name"*.h" |xargs grep -r "SYSRQ",如下图,说明系统有定义
其中99是扫描码。关于3128遥控器系统定义的键可参考文档:3128红外遥控器键值参考文档更简单的办法是只改个PhoneWindowManager.java文件,如Setting键在新遥控器上没有用到,可以把这个里面的功能直接替换成要添加的功能(如直播)。复杂点的办法就是在系统中添加额外的键了,这个等有时间了专门写个文章叙述一下。
5,对于有需求的按键,如遥控器上面一个直播键,在前面几步定义好后,需要在frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java这个类中interceptKeyBeforeDispatching(WindowState win, KeyEvent event, intpolicyFlags)这个方法中拦截,并执行相应功能(如进入直播)。
上面的方法都是RK3128系统最快速的修改或添加遥控器码值的方法了。
{xiaolu13}{xiaolu13}这个厉害 正需要这个呢! 感谢楼主的分享!
这个厉害哦 涨知识了 感谢楼主的分享!{xiaolu13}{xiaolu13}
{xiaolu13}{xiaolu13}哎呦,这个不错 感谢楼主的分享!
这个方法真的是太好了,非常需要这个!
终于找到了感谢楼主的分享!{xiaolu13}{xiaolu13}
{xiaolu13}{xiaolu13}哎呦,这个不错 感谢楼主的分享!
精华内容,楼主V5! {znds6}{znds6}{znds6}这个不错内容很精彩, 感谢楼主的分享!
感谢分享,ZNDS有你更精彩:)