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 ...
随机推荐
- MySQL触发器使用详解
MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 创建触发器在MySQL中,创建触发器语法如下: ...
- 自定义组件-支持PNG图片的多态GraphicButton
按钮功能使用TButton也可以解决, 但是TButton是会获得焦点的, 很多时候我们要求按钮不获得焦点, 而Speedbutton又不支持PNG图片 所以按照TSpeedbutton的代码, 重新 ...
- PostgreSQL JSON函数
https://www.postgresql.org/docs/9.6/static/functions-json.html PostgreSQL 9.6.1 Documentation Prev U ...
- jquery 给指定li添加制定的css样式
$("ul li").eq(1).css({"color":"red"}); //第二个li $("ul li").eq ...
- imx6 matrix keyboard
imx6需要添加4x4的矩阵键盘.本文记录添加方法. 参考链接 http://processors.wiki.ti.com/index.php/TI-Android-JB-PortingGuide h ...
- css3的新特性transform,transition,animation
一.transform css3引入了一些可以对网页元素进行变换的属性,比如旋转,缩放,移动,或者沿着水平或者垂直方向扭曲(斜切变换)等等.这些的基础都是transform属性 transform属性 ...
- Error : should use android:showAsAction when not using support library
我有一个ListActivity,然后一个menu/options.xml android:showAsAction报错: should use android:showAsAction when n ...
- Javascript的GET、POST请求
POST.GET传输数据大小限制 HTTP协议规范没有对URL长度进行限制,也没有限制消息主体的大小,所以从理论上讲,GET.POST是没有大小限制的.那又为什么在使用过程中会有大小限制呢?? GET ...
- JSPatch打补丁
http://www.cnblogs.com/dsxniubility/p/5080875.html http://www.jianshu.com/p/0cb81bf23d7a
- Hessian怎样实现远程调用
1.Spring中除了提供HTTP调用器方式的远程调用,还对第三方的远程调用实现提供了支持,其中提供了对Hessian的支持. Hessian是由Caocho公司发布的一个轻量级的二进制协议远程调用实 ...