Android键值中遥控器中的添加,下面是在mstar平台上的添加,做一个记录,以后方便找到,使用。
1,遥控按键键值映射标准化表示例:

自定义的按键名(中文) 自定义的按键名(英文) 红外码值(东芝码) linux层键值映射 android层按键名(KeyEvent.java) android层键值映射 是否广播以全局响应

以下是普通遥控键值
待机[短按] SKY_KEY_POWER 0CH 0x74 KEYCODE_POWER 26 √
1【*/@】 SKY_KEY_1 01H 0x2 KEYCODE_1 8
交替 SKY_KEY_ALTERNATE 0BH 0x1d1 KEYCODE_ALTERNATE 226

例:添加交替键值--ALTERNATE
2,修改驱动(kernel):
ps:修改在kernel中的驱动
1、kernel\2.6.35.11\drivers\media\IR\keymaps\rc-skyworth-tv.c
在static struct ir_scancode skyworth_tv[]表中添加:
{ 0x000B , KEY_FN_ESC }, //KEYCODE_ALTERNATE
    a、0x000B 为红外码值。
    b、KEY_FN_ESC 在kernel\2.6.35.11\include\linux\input.h中有定义:#define KEY_FN_ESC 0x1d1
        注意:不能往input.h中添加定义,一定是里面已有的定义才拿来用!
2、编译驱动:
在kernel\2.6.35.11目录下
$> cp  .config_amber3_SMP_android_emmc  .config
$> ./genlink.sh
$> make menuconfig
如果有改动,则Save and exit
$> make

修改kl文件Vendor_1918_Product_0001.kl :
添加:key 465      ALTERNATE
465对应于input.h中定义的linux键值0x1d1

1、\\172.20.32.73\harry\mstar\ics\device\skyworth\skywortha3\modules
rc-skyworth-tv.ko
mdrv-ir.ko
2、\\172.20.32.73\harry\mstar\ics\device\skyworth\skywortha3
*.kl  --对应kl文件是linux到Android的键值映射
*.idc
3、mk文件
PRODUCT_COPY_FILES := \
$(LOCAL_KERNEL):kernel \
device/skyworth/skywortha3/init.amber3.rc:root/init.amber3.rc

# IR/keymap kernel module
PRODUCT_COPY_FILES += \
device/skyworth/skywortha3/modules/mdrv-ir.ko:system/lib/modules/mdrv-ir.ko \
device/skyworth/skywortha3/modules/rc-skyworth-tv.ko:system/lib/modules/rc-skyworth-tv.ko
# Device idc/keylayout
PRODUCT_COPY_FILES += \
device/skyworth/skywortha3/Vendor_1918_Product_0001.kl:system/usr/keylayout/Vendor_1918_Product_0001.kl \
device/skyworth/skywortha3/Vendor_1918_Product_0002.kl:system/usr/keylayout/Vendor_1918_Product_0002.kl \
device/skyworth/skywortha3/Vendor_1918_Product_0003.kl:system/usr/keylayout/Vendor_1918_Product_0003.kl \
device/skyworth/skywortha3/Vendor_1918_Product_1918.idc:system/usr/idc/Vendor_1918_Product_1918.idc \
device/skyworth/skywortha3/Vendor_3697_Product_0003.idc:system/usr/idc/Vendor_3697_Product_0003.idc \
device/skyworth/skywortha3/Vendor_13ff_Product_0008.idc:system/usr/idc/Vendor_13ff_Product_0008.idc \
device/skyworth/skywortha3/Vendor_0e8f_Product_0035.kl:system/usr/keylayout/Vendor_0e8f_Product_0035.kl \
device/skyworth/skywortha3/Generic.kcm:system/usr/keychars/Generic.kcm
4、init.amber3.rc
    insmod /system/lib/modules/rc-skyworth-tv.ko
    insmod /system/lib/modules/mdrv-ir.ko
5、修改framework层

KEYCODE_HOME_LONG 761
KEYCODE_BACK_LONG 762
KEYCODE_CENTER_LONG 763
KEYCODE_NEW_SHUTTLE_LEFT 764
KEYCODE_NEW_SHUTTLE_RIGHT 765

①frameworks\base\core\java\android\view\KeyEvent.java
=>修改keycode、name.append  ,定义键值
public static final int KEYCODE_ALTERNATE       = 226;
names.append(KEYCODE_ALTERNATE, "KEYCODE_ALTERNATE");
②frameworks\base\native\include\android\keycodes.h   andriod4.1路径:frameworks\native\include\android\keycodes.h  可以不加 ,定义键值
=>修改enum
AKEYCODE_ALTERNATE       = 226,
③frameworks\base\include\ui\KeycodeLabels.h    andriod4.1路径:frameworks\base\include\androidfw\KeycodeLabels.h
=>修改static const KeycodeLabel KEYCODES[]
{ "ALTERNATE", 226},
④external\webkit\Source\WebKit\android\plugins\ANPKeyCodes.h   可以不加
=>修改enum ANPKeyCodes 
kAlternate_ANPKeyCode          = 226,
⑤frameworks\base\core\res\res\values\attrs.xml
=>修改
标签中增加:
6、修改ics\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java
ps:这部分主要是对键值进行处理的地方
interceptKeyBeforeDispatching函数中,也可能在interceptKeyAfterDispatching函数中,或者dispatchUnhandledKey函数中,看需求
if (down) {// handler mute,volume_up,volume_down,share before dispatch key to app.
            if (keyCode == KeyEvent.KEYCODE_SENSE_ALL//靠近键控板感应,247
                    || keyCode == KeyEvent.KEYCODE_SENSE_MENU//靠近键控板菜单键感应,248
                    || keyCode == KeyEvent.KEYCODE_SENSE_CENTER//靠近键控板确定键感应,249
                    || keyCode == KeyEvent.KEYCODE_SENSE_BACK//靠近键控板返回键感应,250
                    || keyCode == KeyEvent.KEYCODE_SENSE_VOLUME_UP//靠近键控板音量加感应,251
                    || keyCode == KeyEvent.KEYCODE_SENSE_VOLUME_DOWN//靠近键控板音量减感应,252
                    || keyCode == KeyEvent.KEYCODE_SENSE_CHANNEL_UP//靠近键控板频道加感应,253
                    || keyCode == KeyEvent.KEYCODE_SENSE_CHANNEL_DOWN//靠近键控板频道减感应,254
                    || keyCode == KeyEvent.KEYCODE_SENSE_LEAVE//离开键控板频道减感应,255
                 ……
) {//发广播,将键值广播出去,供service获取
                Intent intent = new Intent("com.android.sky.SendHotKey");
                intent.putExtra("specialKey", keyCode);
                    mContext.sendBroadcast(intent);
                Log.d(TAG, "sendBroadcast: com.android.sky.SendHotKey# key:"+keyCode);
            }
        }

Android 智能TV电视系统遥控器键值添加相关推荐

  1. Android系统适配蓝牙遥控器键值Hi3798MV100

    最近有个项目机顶盒要适配蓝牙遥控器,我们原来的盒子是红外的遥控器. 从某宝买回来几款通用的遥控器,最简单的一款用cat /proc/bus/input/devices 命令查看name是BESCO K ...

  2. android 蓝牙 遥控 电脑,Android系统适配蓝牙遥控器键值

    1,先确定走(/system/usr/keylayoutandroid系统中在/framework/base/data/keyboards)哪一个kl文件,可以通过指令getevent-l是那个eve ...

  3. Android系统适配蓝牙遥控器键值

    1,先确定走(/system/usr/keylayoutandroid系统中在/framework/base/data/keyboards)哪一个kl文件,可以通过指令getevent-l是那个eve ...

  4. android修改默认遥控器键值,android 中遥控器键值的添加和修改

    前言:TV 上遥控器键值怎么样对应到android的系统中,最近一个客户需要在我们的平台上修改,所以,我顺便做了一下总结,方便以后参考. 请转载的朋友一定加上出处,十分感谢~~ 第一步: init.r ...

  5. 电视红外/蓝牙遥控器键值定义和适配

    电视遥控器适配和常见问题 遥控器键值适配 遥控器键值适配 一般来说,遥控器分蓝牙遥控器和红外遥控器.红外遥控器是指遥控器通过红外发射器把信号进行发射,接收设备则通过红外接收器进行信号接收:蓝牙遥控器是 ...

  6. android获取spinner的值_在Android的Spinner中实现键值对的正确方法是什么

    这是在Android中为Spinner实现键值对的正确方法吗? package com.mypackage import android.app.Activity; import android.os ...

  7. android修改默认遥控器键值,RK3128平台android系统修改添加遥控器键值码值

    本帖最后由 微笑,一路向前 于 2017-1-4 15:34 编辑 最近帮客户定制RK3128平台的固件,涉及到定制新的遥控器,需要添加或修改遥控码值.RK3128平台Android系统修改遥控器码值 ...

  8. android耳机上报流程,Android系统中耳机按键键值上报不正确 解决过程

    [问题现象] 根据测试组同事反馈:在我们的设备上使用 JBL 品牌某款带有 3 个按键的有线耳机时,按下"音量+"键时设备会减小音量而不是增加音量,按下"音量-" ...

  9. linux创建redis容器,docker-compose实现redis部署及键值添加

    为了简化部署过程,减少手工操作,研究出使用docker-compose方式实现redis部署并往该redis中添加键值 以下为我编写的docker-compose.yml文件的内容 #vi /opt/ ...

最新文章

  1. PPP协议详解(转载)
  2. C++知识点48——类继承与类的作用域
  3. 数据结构 — 平衡二叉树
  4. Config Sharepoint 2013 Workflow PowerShell Cmdlet
  5. 从0到1,关于产品冷启动阶段。
  6. 洛谷——P1342 请柬
  7. java数组的api_java程序员常用的11个API,赶紧收藏
  8. 第四冠!腾讯AI「绝艺」斩获世界智能围棋公开赛冠军
  9. php粒子背景特效_粒子背景特效Particleground.js插件使用解析_蓝戒的博客
  10. 今天辞职~Scars of time
  11. _Linux后台开发6大常用的开源库,让你在同行中脱颖而出
  12. 《Reids 设计与实现》第八章 AOF持久化
  13. java中是值传递引用传递_Java是按值传递而不是按引用传递
  14. Tomcat 的安装与配置
  15. 5.3.2 Counter对象
  16. PTA L1-087(C++) 机工士姆斯塔迪奥
  17. [论文]鲁棒的对抗性强化学习
  18. vue3+ts+vite后台管理模板
  19. 远程工作的五个层次 – 以及为什么您可能处于第2层
  20. mysql5.7出现:ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)问题解决

热门文章

  1. 江哥带你玩转C语言 - 16-内存管理和链表
  2. autojs做服务器_autojs实现云端脚本(二)
  3. 微信小程序wx:for给每一个元素加事件,并获取元素内容
  4. 2台window电脑如何传输文件
  5. 论证掌握需求的重要性
  6. 接入微信登录---(由于微信的官方文档写的有点散,特此记录一下)
  7. Uipath Excel Application Scope详解
  8. CCF NOI1010. 邮寄包裹 (C++)
  9. [家里蹲大学数学杂志]第043期《泛函分析》试题
  10. iPhone 计算机 桌面,远景桌面 让电脑桌面和iPhone手机一样炫酷