IR遥控器增加新按键功能

本文介绍了如何为IR遥控器增加新按键功能,包括查找ircode、编辑remote.conf、修改aml_keypad.kl和KeycodeLabels.h、更新attrs.xml、KeyEvent.java以及相关头文件和源代码。每一步都详细阐述了操作方法和注意事项,确保新按键在系统中得到正确支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 新增按键的遥控器往往不是我们公版遥控器,不能利用现有按键实现特定功能,需要在系统中新增以支持特定APK应用场景。  
  2. 1) 通过打印找出新增按键的ircode  
  3. 2) 在device\a***c\xxx\remote.conf找到ircode对应行,或新建一行。这个文件中需要注意factory_code = 0xfd020001 是遥控器的客户码,必须与实体遥控器对应。  
  4. 3) 修改device\a***c\xxx\aml_keypad.kl或Vendor_0001_Product_0001.kl  
  5. 添加时依照上下文的格式:例如 key 1     BACK这行中,"1"对应remote.conf 中的scancode,"BACK" 就是需要在后面keycodeLabels.h中定义的字串,新增按键可以自定义这个字串,比如RED。  
  6. 4) frameworks/base/include/ui/KeycodeLabels.h,在KEYCODES[]数组后面顺序添加:  
  7.   ...       
  8.   { "RED", 141},  
  9.   { NULL, 0 }  
  10.  注意:  
  11. a) 追加的按键须在末行的{ NULL, 0 }前面。 在这个地方,会将RED等这些字符串转换成数值、键值,传送到KeyEvent.java中。  
  12. b) RED后面的数值,需要与客户协商,客户APK应该专门处理这个新建的141值。  
  13. c) 141的值不应与其他keycode重复,建议新增键的取值依照上文的值,依次累加。  
  14. 5)在frameworks/base/core/res/res/values/attrs.xml中追加:  
  15.        <enum name="KEYCODE_RED" value="141" />  
  16. 6)在frameworks/base/core/java/android/view/KeyEvent.java中添加:  
  17.   public static final int KEYCODE_RED = 141;   
  18.  KeyEvent.java中添加的数值要与上面attrs.xml中的数值保持一致,如果是在最后面追加的话,需要注意修改LAST_KEYCODE的值 为最后一个。   
  19. 7)修改完后,需要在根目录下先执行make update-api更新current.xml(frameworks\base\api目录下)文件,再进行编译,否则会报错。  
  20. 8)还要在frameworks\base\native\include\android\keycodes.h 添加AKEYCODE_xxxx = xxx,
  21. 9)\frameworks\base\libs\ui\Input.cpp里添加 case AKEYCODE_IR_POWER:在2处相应的位置
  22. 10)sun4i-ir.kl里 的键值要和linux3.0/include/linux/input.h的一样
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值