ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 310785|回复: 193
上一主题 下一主题
[交流讨论]

RK3128平台android系统修改添加遥控器键值码值

  [复制链接]
跳转到指定楼层
楼主
发表于 2017-1-4 15:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式 | 来自浙江
本帖最后由 微笑,一路向前 于 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,也可以通过串口搞。
遥控器对着灯板按,会发现终端界面有反应,会出现类似下面的信息
RK3128平台android系统修改添加遥控器键值码值
其中USERCODE=0xff00是遥控器用户码,fa是按键对应的码值。

            2,就这样把遥控器按顺序按一遍,记录所有的键和对应的码值。

            3,进入kernel/arch/arm/boot/dts目录,找到rk3128-box-rk88.dts文件,键值就定义在这个里面,复制出来编辑。
       4,打开dts文件,找到下面这个方法
RK3128平台android系统修改添加遥控器键值码值
其中usercode是遥控器用户码,在这个地方改成你的遥控器用户码如(0xff00)就行,或者在ir_key1{}代码块后面再加一个代码块ir_key2{},格式一样。
Key_table=下面就是码值和对应的键。其中,以上图为例第六个键,0xec是我们前面按遥控器键获取的遥控码值,KEY_MENU是我们为遥控器上面删除键定义的键值名称,KEY_MENU这个键必须在device/rockchip/rksdk目录下的映射的键值文件 20050030_pwm.kl中有定义过才行,而且这个键一定要在KeyEvent.Java中有定义才行。我们找到20050030_pwm.kl文件,打开,会发现里面定义的格式如下:

RK3128平台android系统修改添加遥控器键值码值

我们会发现,左边是数字,右边是定义的名称,dts中直接填KEY_MENU或139都行。
注意这里面删除键定义的是key 111  DEL,而dts里面是DELETE,不知为何,定义成一样不行。如果出现无论怎么改都不行,直接在dts文件中写111就行,这个是扫描码。
这些常用的键都是系统帮忙定义好的,如果遥控器上有要新增一个按键肿么办?
这时就要自定义键了。简单的办法是找几个系统里面已经定义过的键,而且系统又没有用到,而且这个键一定要在KeyEvent.java中有定义才行,在20050030_pwm.kl文件(不同平台这个kl文件可能不一样)中按格式定义,如#key99   SYSRQ,这个系统里面有定义,KeyEvent.java中有定义,但不知道是用来搞啥子的,而且又没用到,可以把它拿来功能定义成直播键,。

搞之前先看下系统和frameworks/base/core/java/android/view/KeyEvent.java里面有木有定义,查找Linux标准键值命令:在kernel目录下,输入,find . -name"*.h" |xargs grep -r "SYSRQ",如下图,说明系统有定义

RK3128平台android系统修改添加遥控器键值码值

其中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系统最快速的修改或添加遥控器码值的方法了。


上一篇:2017年第一周热销的智能电视有哪些?
下一篇:微鲸电视跨年狂欢开启 把陈伟霆饱饱带回家
沙发
发表于 2017-1-4 15:40 | 只看该作者 | 来自浙江
这个厉害   正需要这个呢! 感谢楼主的分享!
回复 支持 反对

使用道具 举报

板凳
发表于 2017-1-4 15:40 | 只看该作者 | 来自浙江
这个厉害哦 涨知识了    感谢楼主的分享!
回复 支持 反对

使用道具 举报

地板
发表于 2017-1-4 15:40 | 只看该作者 | 来自浙江
哎呦,这个不错   感谢楼主的分享!
回复 支持 反对

使用道具 举报

5#
发表于 2017-1-4 15:40 | 只看该作者 | 来自浙江
这个方法真的是太好了,非常需要这个!
回复 支持 反对

使用道具 举报

6#
发表于 2017-1-4 15:40 | 只看该作者 | 来自浙江
终于找到了  感谢楼主的分享!
回复 支持 反对

使用道具 举报

7#
发表于 2017-1-4 15:40 | 只看该作者 | 来自浙江
哎呦,这个不错   感谢楼主的分享!
回复 支持 反对

使用道具 举报

8#
发表于 2017-1-4 15:40 | 只看该作者 | 来自浙江
精华内容,楼主V5!
回复 支持 反对

使用道具 举报

9#
发表于 2017-1-4 15:41 | 只看该作者 | 来自浙江
这个不错  内容很精彩, 感谢楼主的分享!
回复 支持 反对

使用道具 举报

10#
发表于 2017-1-4 16:45 | 只看该作者 | 未知
感谢分享,ZNDS有你更精彩:)
回复 支持 反对

使用道具 举报

11#
发表于 2017-1-4 17:20 | 只看该作者 | 来自台湾
很给力,ZNDS有你更精彩!
回复 支持 反对

使用道具 举报

12#
发表于 2017-1-4 18:44 | 只看该作者 | 来自北京
正需要啊,感谢楼主无私分享!
回复 支持 反对

使用道具 举报

13#
发表于 2017-1-4 20:31 | 只看该作者 | 来自山东
强烈支持楼主ing……
回复 支持 反对

使用道具 举报

14#
发表于 2017-1-4 22:13 | 只看该作者 | 来自陕西
感谢分享,ZNDS有你更精彩:)
回复 支持 反对

使用道具 举报

15#
发表于 2017-1-4 22:23 | 只看该作者 | 来自湖北
之前就有人做过一个修改乐视盒子遥控器的软件,那个软件很好用,用新的遥控器测码,然后替换系统文件就可以了。不知道楼主能否做一个这样的软件,能支持智能电视遥控器的修改,现在智能电视的遥控器没有数字键,看直播非常不方便。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2024-11-26 13:57 , Processed in 0.124894 second(s), 15 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2024 ZNDS.Com

快速回复 返回顶部 返回列表