hisi平台遥控器按键适配

hisi平台遥控器按键适配
不涉及原理,以新增按键为例说明需要修改到的文件。
如:新增按键 IPTV_HOME,android键值为288,逻辑键值为 0x1e7, 物理键值为 0x77884cb3
涉及修改到的文件: 
device\hisilicon\bigfish\system\ir_user\key_pars\key.xml 
    根据按键物理键值,加一行  
device\hisilicon\bigfish\system\ir_user\key_pars\linux_key.h
    在数组Linux_KeyCode_Ary 加一行  {"KEY_IPTV_HOME", 0x1e7},
external\kernel-headers\original\linux\input.h
    加一行宏定义  #define IPTV_HOME 0x1e7
bionic\libc\kernel\common\linux\input.h
    加一行宏定义  #define IPTV_HOME 0x1e7
device\hisilicon\bigfish\prebuilts\Vendor_0001_Product_0001.kl
    加一行 key 487   IPTV_HOME 
frameworks\native\include\input\KeycodeLabels.h
    在KEYCODES数组加一行 { "IPTV_HOME", 288 }, 

以上适配完,android应用能收到288按键值,由于新增的按键在KeyEvent中没有定义,我们可以在这里加上定义,但是由于androidSDK不包含该按键,所以在使用IDE编写应用的时候依然无法通过KeyEvent.KEYCODE_IPTV_HOME 来访问(在大包下编译是可以的),所以以下内容可以不修改,不影响按键的接收。
frameworks\base\core\java\android\view\KeyEvent.java
    增加常量 public static final int KEYCODE_IPTV_HOME = 288;
    populateKeycodeSymbolicNames 接口加一行 names.append(KEYCODE_IPTV_HOME, "KEYCODE_IPTV_HOME");

大概映射如下:
0x77884cb3--(key.xml)-->KEY_IPTV_HOME--(linux_key.h)-->0x1e7--(Vendor_0001_Product_0001.kl)-->IPTV_HOME --(KeycodeLabels.h)-->288

http://blog.csdn.net/jackiexi/article/details/44022225

你可能感兴趣的:(hisi平台遥控器按键适配)