android 遥控器home键键值,android 中遥控器键值的添加和修改

本文详细介绍了如何在Android系统中配置遥控器键值,包括init.rc的修改,Linux内核层的红外驱动配置,以及Android层的键值映射。通过修改device目录下的remote.conf和keylayout文件,可以实现遥控器按键功能的定制和添加。

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

前言:TV 上遥控器键值怎么样对应到android的系统中,最近一个客户需要在我们的平台上修改,所以,我顺便做了一下总结,方便以后参考。

请转载的朋友一定加上出处,十分感谢~~

第一步:

init.rc:通过service remotecfg /system/bin/remotecfg /system/etc/remote.conf在开机init阶段,将remote.conf中的配置通过ioctl赋值到ir驱动的变量中(用户空间—>内核空间),这样遥控定制化配置才会生效。remotecfg程序代码位于external/remoteconf/irremote.c,可以在设备的/system/bin/下找到它并手动运行#./system/bin/remotecfg /system/etc/remote.conf

第二步:

红外驱动(Linux内核层):Linux irremote driver将依照红外驱动配置文件,将红外键值ircode映射为Linux标准键盘扫描码scancode。这个过程即将红外遥控器的按键事件转换为Linux的标准input event。a) 红外驱动配置文件/system/etc/remote.confb)标准键盘扫描码kernel/include/linux/input.h(在几次遥控器定制化中,尚未修改过该文件)

第三步:

Andriod层:windows manager从irremote driver中读出key event,再通过/system/usr/keylayout/aml_keypad.kl文件,将标准input设备的scan code映射为Andriod API按键KEYCODE字符串。最终scancode和keycode被window manager发送到应用程序,被其focus view消化处理。例如:key 113 SEARCH官方称.kl为key layout map file。

映射/配置文件说明

ircode映射为scan code: device/a***c/xxx/remote.conf

### 20红外遥控器键值定义及相关数据 对于20红外遥控器的按键值定义,通常涉及多个层次的数据处理映射关系。以下是详细的分析: #### 1. **红外遥控器键值的基础概念** 红外遥控器的工作流程是从硬件到软件逐步完成按识别的过程。首先,红外信号被接收并解析为特定的编码(ircode),这些编码随后会被映射为标准盘扫描码(scancode)。最终,这些扫描码会在Android系统的上层代码中进一步转化为具体的按标签[^3]。 #### 2. **20红外遥控器的具体按键值定义** 虽然具体型号可能有所不同,但常见的20红外遥控器及其对应的常见键值可以列举如下表所示: | 按名称 | 常见键值 (Hex) | |----------------|---------------| | Power | 0x74 | | Menu | 0xEC | | OK | 0xD9 | | Back | 0xA8 | | Home | 0xB7 | | Volume Up | 0xE2 | | Volume Down | 0xE0 | | Mute | 0xF6 | | Channel Up | 0xEF | | Channel Down | 0xED | | Number Keys (0)| 0xAB | | Number Keys (1)| 0x6B | | ... | ... | 需要注意的是,实际应用中的键值可能会因厂商设计而有所差异。例如,在某些RK3128平台上的实现中,`KEY_MENU` 被定义为 `0xEC` 并需在 `/device/rockchip/rksdk/20050030_pwm.kl` 文件中声明其映射关系[^2]。 #### 3. **配置文件的作用** 为了支持自定义按键值开发者可以通过编辑以下关文件来调整或扩展功能: - **remote.conf**: 这一文件位于 `/system/etc/` 下,用于定义红外驱动如何将接收到的 ircode 映射至 scancode[^3]。 - **Keycodes.h InputEventLabels.h**: Android框架内的这两个头文件分别负责定义上层按键码以及它们与标签字符串之间的对应关系[^4]。 如果需要新增或者修改某个特殊按的功能,则不仅要在上述提到的 kernel 层面做好准备,还需要同步更新 Java 层级的相关类如 KeyEvent.java 的内容以确保整个链条的一致性可用性。 ```bash # 示例:查看 remote.conf 文件结构 cat /system/etc/remote.conf ``` #### 4. **实践建议** 当面对一款新的20红外遥控器时,推荐按照以下思路操作: - 使用工具捕获原始红外信号得到初始 ircode; - 参考现有文档确认目标 scancode; - 编辑必要的配置文件完成最后一步绑定工作。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值