android 遥控器映射,MTK 平台Android系统遥控器映射关系

本文详细介绍了MTK平台Android系统中遥控器按键的映射关系,从应用层的KEYCODE_POWER键开始,经过应用层与系统映射、Android系统与Linux内核键值映射、Linux内核键值与红外键值的映射,到最后的遥控器映射关系图,阐述了遥控器在Android系统中的工作原理。同时,文中还提及了如何修改遥控器按键值和常见问题及解决方案。
摘要由CSDN通过智能技术生成

MTK 平台Android系统遥控器映射关系

在我们工作中,经常要去适配遥控器的工作,但是大部时候我们是移植其他工程上的代码来修改,可能对Android系统中的按键关系有些不清楚,下面以MTK平台为例,介绍下Android系统中按键映射关系(以应用层的KEYCODE_POWER键为例)。

我们先从上往下看

第一、应用的按键值。

第一,   在应用上我们按遥控器Power按键,会抛出26,这个按键值的定义在(/framework/base/core/android/view/KeyEvent.java)文件中,如下:

public static final int KEYCODE_POWER = 26; (向应用层的抛上的键值就是26)

第二、应用层与Android系统映射关系

应用上的这个按键值会与Android系统中的键值相对应起来,

对应关系在(/framework/native/include/input/KeycodelLables.h)文件中

如下:

static const KeycodeLabel KEYCODES[] = {

{"SOFT_LEFT", 1 },

{"SOFT_RIGHT", 2 },

{"HOME", 3 },

{"BACK", 4 },

{"CALL", 5 },

{"ENDCALL", 6 },

{ "0",7 },

{ "1",8 },

{ "2",9 },

{ "3",10 },

{ "4",11 },

{ "5",12 },

{ "6",13 },

{ "7",14 },

{ "8",15 },

{ "9",16 },

{"STAR", 17 },

{"POUND", 18 },

{"DPAD_UP", 19 },

{"DPAD_DOWN", 20 },

{"DPAD_LEFT", 21 },

{"DPAD_RIGHT", 22 },

{"DPAD_CENTER", 23 },

{"VOLUME_UP", 24 },

{"VOLUME_DOWN", 25 },

{ "POWER", 26 },(POWER是android系统定义的宏,26表示应用层上的键值)

..........

};

同时系统里面有个遥控器资源文件(/framework/base/core/res/res/values/attrs.xml),这个文件里面按键关系跟上面的KeycodelLables.h文件关系是一致的。

如下:

……………………………………………………

…………………………………………………………………………

………………………………………………………………

……………………………………………………………………………………

第三步、Android系统按键跟Linux内核中键值的映射关系

涉及到文件(framework/base/data/keyboards/Vendor_000b_Product_000b.kl)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值