Android4.1添加新的按键(3)

Android 添加蓝牙遥控按键 一. 蓝牙遥控器的原理 本文源码给予 amlogic 9.0 蓝牙遥控器的原理如下图 从流程上我们可以发现,我们遥控器的码值被转化了几次: HID码值–→Linux event–→ 根据Vendor、Product转化为Android事件。 二. 按键知识 适配可以发现,一些按键不可用,说明按键值为添加和适配。 通过 getevent 可以拿到其中一个按键的值: ** ** 从上图可以知道 名字:蓝牙遥控器的名字为 BT_Smart_RC001 007004a :其中,高位为 usage page ( 阅读详情
添加新的物理按键 DECT_REGISTER, DECT_PHONE
1.kl文件添加按键码映射,251,252 是 驱动上报上来的键值
key 251 DECT_REGISTER
key 252 DECT_PHONE
2.frameworks/base/include/androidfw/KeycodeLabels.h 
 对KEYCODES,添加按键码
static const KeycodeLabel KEYCODES[] = {
...
 { "DECT_REGISTER",220},
 { "DECT_PHONE",221},
3.frameworks/base/core/res/res/values/attr.xml
<enum name="KEYCODE_DECT_REGISTER" value="220"/>
<enum name="KEYCODE_DECT_PHONE" value="221"/>
4.frameworks/native/include/android/keycode.h
enum {
    AKEYCODE_UNKNOWN         = 0,
    ....
    ....
添加
AKEYCODE_DECT_REGISTER   =220,
AKEYCODE_DECT_PHONE      =221,
5.frameworks/base/core/java/android/view/KeyEvent.java
添加 
 public static final int KEYCODE_DECT_REGISTER=   220;
 public static final int KEYCODE_DECT_PHONE=221;
修改 LAST_KEYCODE  和 KEYCODE_SYMBOLIC_NAMES
private static final int LAST_KEYCODE           = KEYCODE_DECT_REGISTER;
// NOTE: If you add a new keycode here you must also add it to:
//  isSystem()
//  native/include/android/keycodes.h
//  frameworks/base/include/ui/KeycodeLabels.h
//  external/webkit/WebKit/android/plugins/ANPKeyCodes.h
//  frameworks/base/core/res/res/values/attrs.xml
//  emulator?
//  LAST_KEYCODE
//  KEYCODE_SYMBOLIC_NAMES
private static void populateKeycodeSymbolicNames() {
        SparseArray<String> names = KEYCODE_SYMBOLIC_NAMES;
        names.append(KEYCODE_UNKNOWN, "KEYCODE_UNKNOWN");
        ...
        ...
        names.append(KEYCODE_DECT_REGISTER, "KEYCODE_DECT_REGISTER");
        names.append(KEYCODE_DECT_PHONE, "KEYCODE_DECT_PHONE");
}
修改 isSystem(),追踪jni需要修改frameworks/base/lib/androidrw/input.cpp  KeyEvent::isSystemKey
bool KeyEvent::isSystemKey(int32_t keyCode) {
    switch (keyCode) {
        ....
        case AKEYCODE_DECT_REGISTER:
        case AKEYCODE_DECT_PHONE:
            return true;
    }   
    return false;
}
6.external/webkit/Source/WebKit/android/plugins/ANPKeyCodes.h
修改
   enum ANPKeyCodes {
    kUnknown_ANPKeyCode = 0,
   ...
   ...
   kDectRegister_ANPKeyCode=220,
   kDectPhone_ANPKeyCode=221,
}
以上修改完成后,可以在PhoneWindowManager 测试下这个两个键是否成功上报,如果上报成功,就可以在自己的应用中添加与这个按键相关的逻辑处理。
Android 10 添加一个新物理按键 Android 10 添加一个新物理按键 下面简单记录下如何添加一个新的物理按键 一、kernel修改 kernel/msm-4.19/include/dt-bindings/input/linux-event-codes.h中定义新按键: #define KEY_RFKILL 247 /* Key that controls all radios */ #define KEY_MICMUTE 248 /* Mute / unmute the microphone */ #define KEY_NEW 阅读详情

相关推荐

android添加按键(二) 添加按键流程、出现问题

Android 系统对加载键盘布局文件(Generic.kl ). 在 开发板的文件目录 /system/usr/idc 中有一系列的 *.idc  框架层会根据驱动中的配置,自动生成设备的idc 文件。 例如在 EventHub.cpp 中的 loadConfigurationLocked 方法中,会获取设备的idc 文件。如果没有获取到idc 文件,那么会采用默认的Generic.

kc58236582的博客 2904

android 自定义物理按键,android 4.4 添加物理按键

kernel下添加Linux-3.4/drivers/input/keyboard/Makefilelinux-3.4/drivers/input/keyboard/sw-keyboard.csw_scankeycodes[]={[1] = KEY_GPS,}device/softwinner/wing-k70/configs/sw-keyboard.klkey 249 GPS WAKEframe...

weixin_29532927的博客 552

Android 4.4 如何添加按键流程

Android 4.4 如何添加按键流程

Android framework 417

Android添加一个新的按键Key

1、首先先在  Vendor_0f30_Product_0008.kl

xiaoxiaoyu1107的专栏 1026

Android 系统按键添加流程

和你一起终身学习,这里是程序员Android经典好文推荐,通过阅读本文,您将收获以下知识点:一、驱动通过GPIO连接的按键二、Framework 层添加按键响应方法一、驱动通过GPIO连接的按键此类按键采用GPIO来连接,通过监测其中断来判断按键的动作,需要根据具体硬件设计在项目对应的dts文件配置gpio_keys节点。底层驱动主要修改以下两个文件上报键值。1.修改 sp9863a-3c10.d...

程序员Android 1121

android处理键盘事件之物理按键(屏蔽后退键)

本例子讲述了,android开发中常用的键盘事件的处理示例。另外,加有文档的说明

安卓源码+内核修改编译(修改内核调试标志绕过反调试)

标 题: 【分享】安卓源码+内核修改编译(修改内核调试标志绕过反调试) 作 者: koflfy 时 间: 2016-10-26,18:05:19 链 接: http://bbs.pediy.com/showthread.php?t=213481 历经两天时间,终于完整的编译完安卓操作系统源码+内核,并修改了内核的几个调试标志以达到绕过一些反调试的目的。 在此感谢同学辉哥以及群友f8的

Fly20141201. 的专栏 7161

【可不卸载重装】VS2019新建项目里没有CUDA选项

问题:VS2019 新建项目里没有CUDA选项,vs也属性没有cuda。这是因为你在Visual Studio 2019安装之前,先安装了CUDA Toolkit。

qq_62844901的博客 1318

Android4 .1添加新的按键(1)

在Android 系统中定义了大量的物理和虚拟按键,比如返回键,home键,数字键等。现在有这样一个需求,要在现有的开发板上添加一个新的物理按键。   在添加按键之前,需要了解Andorid 系统的按键软件架构,以物理按键为例。   1. 按键驱动层         将物理按键的键值上报给按键框架层。在手机的文件系统中,有这样的一个目录 /dev/input,按键框架层,就是通过检测这个目录

lsdmx2016的总结 3349

QGIS中高效处理CAD数据的两种实用技巧

本文详细解析了在QGIS中高效处理CAD数据的两种核心方法。针对DWG/DXF文件在QGIS中直接打开失败的问题,介绍了使用QGIS内置数据导入管理器进行标准化转换的流程,并重点推荐了功能更强大的Another DXF Importer插件,以更好地保留文字、块属性等复杂信息。文章对比了两种方法的优劣与适用场景,并提供了坐标系设置、中文乱码等常见问题的避坑指南,帮助用户根据数据需求选择最佳导入策略。

weixin_28363123的博客 117

二次规划问题(qp)和序列二次规划问题(sqp)的简单理解

当二次规划的约束为非线性约束时,通常会采用sqp进行求解,用连续求解qp的方法来得到非线性约束条件下的最优解,上述的qpoases和osqp均无法直接求解非线性约束问题,所以如果使用这两个库的话,注意,sqp是结果,而不是原因,只有在非线性约束的情况下才会考虑sqp求解,如果问题本身就是线性约束,则直接用qp解就行。对于工程师而言,我们在编写代码的时候,并不关心二次规划问题的求解细节,所以一般是把二次规划问题建立好后,直接调用三方库进行求解。因为约束为非线性约束,所以先将约束进行线性化,约束原方程为。

zmhzmhzm的博客 1万+

Android系统添加新的按键

116 对应键码值在bsp\kernel5.4\kernel5.4\include\uapi\linux\input-event-code.h 中定义。inux内核添加设备按键设备节点后,需要把键值上报到应用层。修改按键布局文件并完成按键的键值上报给应用层。我们在Linux内核添加新的按键值,在Linux内核中提供了按键的驱动程序gpio_keys.c,首先。对应设备节点 /sys/class/input/event0/device。然后就是Android上层的添加按键,如需要添加新的定义。

maji9143的博客 539

Simplicity Studio V5与EFR32BG22蓝牙开发环境实战指南

本文详细介绍了Simplicity Studio V5集成开发环境与EFR32BG22蓝牙芯片的开发实战指南。内容涵盖开发环境安装、SDK配置、项目创建、调试烧录、外设驱动集成及常见问题解决方案,帮助开发者快速上手物联网蓝牙应用开发,并充分利用EFR32BG22的低功耗与高集成度特性。

v5w6x的博客 320

android4个方向按钮,安卓机按键进化史:还记得你的手机曾有4个按键吗?

原标题:安卓机按键进化史:还记得你的手机曾有4个按键吗?火星文:在很久以前,安卓下面有三个按键,而苹果只有一个“HOME”键。据说苹果单按键的思维来自于乔布斯的“禅”——一键回归初心。而安卓三个键是沿袭了以前功能机的设计。但是,随着时代的变迁,安卓机也在变化中。现在越来越多的安卓手机都取消了菜单键,返回键改到了左边。到底是发生了神马? 安卓手机开始有4个键为了让人更多使用“谷搜索”,谷歌曾经非常3...

weixin_35450313的博客 1936

第十篇|网络子系统 ②——无损以太网、PFC/ECN、DCQCN 与拥塞可视化

网络部分了解了解

qq_37535542的博客 1874

MATLAB 2022b 用户专属:保姆级IPOPT求解器安装配置全流程(含OPTI工具箱)

本文为MATLAB 2022b用户提供IPOPT求解器的详细安装与配置指南,涵盖OPTI工具箱的适配安装、环境变量设置及常见问题解决方案。通过实战案例演示非线性优化问题的求解过程,帮助用户高效部署这一强大的优化工具,提升工程计算效率。

weixin_29092031的博客 405

RK平台Android4.4 添加一个新的遥控器支持以及添加特殊按键【转】

本文转载自:http://blog.csdn.net/coding__madman/article/details/52904063 版权声明:本文为博主原创文章,未经博主允许不得转载。 瑞芯微平台 SDK:Android4.4 好久没写博客了,最近工作中需要在SDK中添加一个新的遥控器支持,由于自己对java代码比较头大,过程也是一波三折,整个流程其实分析下来并不难,这里做个简单的总结。...

zzb2760715357的博客 381

Python爬虫实战:抓取全球各国海关进出口数据的全流程教程

本文系统介绍了用Python采集全球各国海关进出口数据的完整流程,从数据源调研、技术选型,到代码实战、数据处理和存储,最后还拓展了进阶反爬和动态内容处理方法。希望这篇博文能帮助你掌握专业的数据采集技能,为后续数据分析和商业应用奠定坚实基础。

2201_76125261的博客 2362

android 按键kl文件,Android添加新按键

1、前言在Android开发中可能会遇到添加新的按键的需求,本文将简单介绍如何在Android系统中完成一个新的按键的添加。当系统有新的按键需要添加时,Linux内核下的键码到Android系统中键码是如何进行转换映射的?2、内核添加设备节点首先,我们需要在Linux内核添加新的按键值,在Linux内核中提供了按键的驱动程序gpio_keys.c,该驱动是基于设备树实现的,因此,先添加自己的设备节...

weixin_30113575的博客 1022

【Conda虚拟环境】新建 + 激活 + 安装 + 查看 + 退出 + 删除 + 复制 + 导出 + 导入 + 更改

(1)创建虚拟环境(2)激活虚拟环境(4)查看虚拟环境(3)退出虚拟环境(5)删除虚拟环境(6)复制虚拟环境(7)导出虚拟环境(8)导入虚拟环境(9)更改虚拟环境的安装路径(10)在指定路径下,配置虚拟环境

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 4万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android4.2&android4.3去掉虚拟按键

临时接到客户要求,需要只保留返回虚拟按键,放到右下角。开始收集布局修改好,后来要求平板布局。找了一下午中午找到位置,先分享一下:手机布局需修改文件:frameworks/base/packages/SystemUI/res/layout/navigation_bar.xml平板布局需修改文件。frameworks/base/packages/SystemUI/res/layout-sw600dp/

bzw73的专栏 3288

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

安卓添加按键流程

1、首先需要在 ./kernel/include/uapi/linux/input-event-codes.h 文件中定义驱动捕捉并上传给linux层的键值。如下: #define KEY_RESERVED 0 #define KEY_ESC 1 #define KEY_1 2 #define KEY_2 3 #define KEY_3 4 #define KEY_4 5 #define KEY_5 6 #define KEY_6 7 #define KEY_7 8 #de

qq_50764711的博客 788

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android Studio 笔记4.1 安卓按键事件

Android Studio 笔记4.1 安卓按键事件

ZQIR12的博客 370

4.1 安卓按键事件

曾经手机有物理键,可以根据按键进行响应,这是本讲我们要学习的内容,当然,现在手机取消了物理键,采用完全的触摸屏,后面我们会讲到触屏事件与手势操作。当用户触碰到某个组件或者方向键被按下时产生该事件,该事件的监听器是,事件处理方法是onClick()。

GE_wy的博客 765
上一篇: 字符编码标准
下一篇: Android4 .1添加新的按键(1)
simonjay2007
博客等级 码龄17年 104粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值