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 ...
随机推荐
- ansible 安装
1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署. ...
- Python 打包工具cx_freeze 问题记录及解决办法
在节前的最后一天,解决了打包过程中遇到的所有问题,可以成功运行了!真是个好彩头,希望新的一年一切顺利! 以下是在使用cx_freeze过程中遇到的问题及解决办法(Win7) 问题描述:运行exe,启动 ...
- 【Html 学习笔记】第一节——基础标签
前端技术一直是欠缺,从今天开始以后打算每天抽出一部分的时间进行学习,尽快把这方面补上来.感觉测试人员还是需要一些前端技能的,我这里学习地址是:W3CSchool 废话不多说了,直接在文本编辑器中编辑好 ...
- 如何消除MyEclipse导入jQuery库后出现的错误标记
由于MyEclipse提供比较严谨的js校验功能,因此jQuery等前端框架导入到MyEclipse后均会提示错误,比较难看,如果要将校验去掉可以遵循下面步骤:1.点击菜单“MyEclipse”-&g ...
- oracle not in,not exists,minus 数据量大的时候的性能问题
http://blog.csdn.net/greenappple/article/details/7073349/ 耗时 minus<not exists<not in
- Python开发【第十章】:I/O多路复用、异步I/O(综合篇)
近期心得:国庆节放假再加上近期工作太忙,已经有半个月没更新博客了,程序更别说了,也没怎么去写,自己给自己着实放了个大假.谈谈感受的话,没有python的日子,每天看书.看电影.各种玩,还有爸妈伺候着, ...
- SQL性能优化
引言: 以前在面试的过程中,总有面试官问道:你做过sql性能优化吗?对此,我的答复是没有.一次没有不是自己的错误,两次也不是,但如果是多次呢?今天痛下决心,把有关sql性能优化的相关知识总结一下,以便 ...
- Spring Boot项目中使用jdbctemplate 操作MYSQL数据库
不废话,先来代码 pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...
- sql之连表查询--效率 通过分析各种连接查询的实现原理来了解
1. 左连接 2.右连接 3.内连接 4.Cross join 笛卡尔乘积
- cs
cs <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...