Android4.0 添加一个新的Android 键值
这里添加新的键值,不是毫无凭据凭空创造的一个键值,而是根据kernel中检测到的按键值,然后转化为Android所需要的数值:
以添加一个Linux键值为217,把它映射为android的键值Browser(这个键值之前不存在)为例介绍一下:
1、android之前没有这个键值,需要定义
则是linux键值
那么,BROWSER不能无缘无故就使用,必然有定义位置,这个位置就是KeycodeLabels.h
static const KeycodeLabel KEYCODES[] = {
……
{ "CALCULATOR", 210 },
{"BROWSER", 211}, 是android键值
{ NULL, 0}
}
在EventHub.cpp中加载并解析这个map:atc260x-irkeypad.kl,那么得到的是linux键值217为key的string,这个string就是BROWSER,有了上面这个KEYCODES数组,就可以获得它对应的android键值了。
5、external/webkit/WebKit/android/plugins/ANPKeyCodes.h
enum ANPKeyCodes {
……
kAppSwitch_ANPKeyCode = 186,
kBrowser_ANPKEYCODE = 211,
};
6、frameworks/base/core/res/res/values/attrs.xml
<attr name="keycode">
<enum name="KEYCODE_CALCULATOR" value="210" />
<enum name="KEYCODE_BROWSER" value="211" />
</attr>
7、/frameworks/base/core/java/android/view/KeyEvent.java
LAST_KEYCODE也就是最后一个keycode,因为添加了新的,所以需要更改这个的数值
LAST_KEYCODE = KEYCODE_BROWSER
private static final
SparseArray<String> KEYCODE_SYMBOLIC_NAMES = new SparseArray<String>();
private static void populateKeycodeSymbolicNames() {
……
names.append(KEYCODE_MUSIC, "KEYCODE_MUSIC");
names.append(KEYCODE_CALCULATOR, "KEYCODE_CALCULATOR");
names.append(KEYCODE_BROWSER, "KEYCODE_BROWSER");
}
这些操作完成了之后,就完成了linux键到android的键值映射。也就是android中多了一个KEYCODE_BROWSER它的值是211.
//////////////////////////////android 4.3 添加新键值//////////////////////////////
///////////////////////////////////////////////////////////////////////////////
Android4.0 添加一个新的Android 键值的更多相关文章
- RK平台Android4.4 添加一个新的遥控器支持以及添加特殊按键【转】
本文转载自:http://blog.csdn.net/coding__madman/article/details/52904063 版权声明:本文为博主原创文章,未经博主允许不得转载. 瑞芯微平台 ...
- js为一个对象Object添加一个新的属性和值
1, var obj = {}; //或者 var obj=new Object(); var key = "name"; var value = "张三丰" ...
- Android下添加新的自定义键值和按键处理流程
Android下添加新的自定义键值和按键处理流程 说出来不怕大家笑话,我写这篇博客的原因在于前几天去一个小公司面试Android系统工程师,然后在面试的时候对方的技术总监问了我 ...
- Android下添加新的自定义键值和按键处理流程【转】
本文转载自: Android下添加新的自定义键值和按键处理流程 说出来不怕大家笑话,我写这篇博客的原因在于前几天去一个小公司面试Android系统工程师,然后在面试的时候对方的技术总监问了我一 ...
- Flink资料(6) -- 如何添加一个新的Operator
false false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-n ...
- 012.Adding a New Field --【添加一个新字段】
Adding a New Field 添加一个新字段 2016-10-14 3 分钟阅读时长 作者 By Rick Anderson In this section you'll use Entity ...
- Linux 在添加一个新账号后却没有权限怎么办
当添加一个新账号后,我们可能会发现新账号sudo 时会报告不在sudoers中,使用su -s时输入密码后也会认证失败 上网搜索大部分都要求修改/etc/sudoers中的内容,但修改这个文件必须需要 ...
- Mysql学习(一)添加一个新的用户并用golang操作Mysql
Mysql添加一个新的用户并赋予权限 添加一个自己的用户到mysql 首先我们需要先用root用户登录mysql,但是刚安装完没有密码,我们先跳过密码 ailumiyana@ailumiyana:~/ ...
- 一个新的Android Studio 2.3.3可以在稳定的频道中使用。A new Android Studio 2.3.3 is available in the stable channel.
作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com 一个新的Android Studio 2.3 ...
随机推荐
- CSS基础1
CSS是层叠样式表(Cascading Style Sheets)的缩写,它有以下优点:①提高页面浏览速度:②缩短改版时间,降低维护费用:③更好的控制页面布局:④实现表现和结构.内容相分离:⑤更方便搜 ...
- C# 获取计算机信息
//C#获取当前计算机的系统信息 //系统标识符和版本号 string strSystem = Environment.OSVersion.ToString(); //获取映射到进程上下文的物理内存量 ...
- dragdrop 修改版
<!DOCTYPE html> <html lang="en"> <head> <meta name="keywords&quo ...
- js保留两位小数
js保留两位小数四舍五入: (Math.floor(until_price*100)/100).toFixed(2);//会四舍五入 保留两位小数 且不四舍五入(三种方式,请用最后一种): var ...
- [Python笔记]序列(一)索引、分片
Python包含6种内建序列:列表.元组.字符串.Unicode字符串.buffer对象.xrange对象. 这些序列支持通用的操作: 索引 索引是从0开始计数:当索引值为负数时,表示从最后一个元素( ...
- 好用的Markdown编辑器一览
Markdown 是一种简单的.轻量级的标记语法.用户可以使用诸如 * # 等简单的标记符号以最小的输入代价生成极富表现力的文档. Markdown具有很多优点: 写作中添加简单符号即完成排版,所见即 ...
- imx6 DDR_Stress_Test
在调试DDR的时候,有时候需要更改参数.今天发现NXP提供了DDR Stress Test工具,用于DDR参数的校准. 参考链接 http://blog.csdn.net/qq405180763/ar ...
- ajax交互方法实现
AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个 ...
- mysqldump导出
mysqldump -u user -p dbname table1 table2 > db.sql mysql执行sql mysql –uroot –p -Dtest < 1.sql
- 夺命雷公狗-----React---18--value和defaultValue的区别
<!DOCTYPE> <html> <head> <meta charset="utf-8"> <title></ ...