有的时候,我们需要增加一些新的按键,那么需要修改哪些地方呢?

1.Java层的修改:KeyEvent.java

修改了keyevent.java需要编译出android.policy.jar这个需要拷进去,(在/frameworks/base/policy这个目录下执行mm -B得到android.policy.jar拷贝到电视)

2.Native层的修改:KeycodeLabels.h

修改Keycodelables.h需要编译出libandroidfw.so,这个要拷进去(因为在Keyboard.cpp中有使用)

3.修改了*****.kl这个需要拷进去,kl文件的作用可以网上搜,其实也是一个映射文件,只不过这个kl的文件的加载方式通常和具体的输入设备标识有关。

因此一般针对不同的设备有不同的文件定义。(你可以通过getevent 查看事件是从哪个设备上来的,然后 dumpsys input 可以查看这个设备使用的kl文件是哪一个)

4.修改了defaultkeymap.lst,novatek-blast.kl,Tvkeymap.lst需要编译出boot.img烧进去(这部分主要用于Hid通道上报上来的键值映射)

5.修改了input.h需要编译出kernel放到BSP目录下,然后编成boot.img烧写进去(或者将input驱动,比如rc-**-tv.ko编出来替换到TV也可以,这种直接替换驱动文件,最为简单)

拓展:如果要新增事件类型,比如想为某个新的传感器定义了一些新的事件类型,同样也可以仿照这个处理流程来添加。

Android 5.0:

框架层有变化:

对scancode的映射放到了:

frameworks/native/include/android/keycodes.h

frameworks/native/include/input/InputEventLabels.h

其他的不变

具体按键上抛流程见前面写的博客,以能够有个纵向的了解:Android TV 按键流转探究

android tv ko,Android TV 键值修改流程相关推荐

  1. Android系统适配蓝牙遥控器键值Hi3798MV100

    最近有个项目机顶盒要适配蓝牙遥控器,我们原来的盒子是红外的遥控器. 从某宝买回来几款通用的遥控器,最简单的一款用cat /proc/bus/input/devices 命令查看name是BESCO K ...

  2. android获取spinner的值_在Android的Spinner中实现键值对的正确方法是什么

    这是在Android中为Spinner实现键值对的正确方法吗? package com.mypackage import android.app.Activity; import android.os ...

  3. 自制Windows 7 注册表键值修改服务(Service)

    首先说说为什么要写这么一个服务.由于电脑要在公司域中使用,所以不可避免的会继承域中的组策略配置.域中95% 的计算机是XP系统,部分组策略对于Windows 7 系统来说有些多余而且带来很多麻烦. 问 ...

  4. 适用于QMK的键值修改软件VIA

    QMK可以方便的修改每个键位的键值,比如将QWERT改为小众的DVORAK布局,自定义组合键,自定义宏什么的.但每次修改都需要重新编译,刷固件,这就比较麻烦了.借助动态键值修改软件 VIA(https ...

  5. android耳机上报流程,Android系统中耳机按键键值上报不正确 解决过程

    [问题现象] 根据测试组同事反馈:在我们的设备上使用 JBL 品牌某款带有 3 个按键的有线耳机时,按下"音量+"键时设备会减小音量而不是增加音量,按下"音量-" ...

  6. Android EditText软键盘换行键的修改和事件监听,软键盘设置搜索按钮;

    软键盘设置搜索按钮: 给EditText设置imeOptions属性: android:singleLine="true" android:imeOptions="act ...

  7. android 蓝牙 遥控 电脑,Android系统适配蓝牙遥控器键值

    1,先确定走(/system/usr/keylayoutandroid系统中在/framework/base/data/keyboards)哪一个kl文件,可以通过指令getevent-l是那个eve ...

  8. Android系统适配蓝牙遥控器键值

    1,先确定走(/system/usr/keylayoutandroid系统中在/framework/base/data/keyboards)哪一个kl文件,可以通过指令getevent-l是那个eve ...

  9. Hashtable 中的键值修改问题

    Hashtable 允许我们通过键来寻找保存在其中的值,还可以通过 ContainsKey 方法来查看是否在 Hashtable 中有对应的键,但是,在使用中还是有一些需要注意的地方. 一个同学写了这 ...

最新文章

  1. 使用云服务器安装QEMU搭建嵌入式开发环境
  2. NHibernate初学者指南(2):一个完整的例子
  3. LeNet试验(一) 搭建pytorch版模型及运行
  4. HDU - 6756 Finding a MEX-分块思想
  5. spring.mvc.static-path-pattern、spring.resources.static-locations
  6. HBase全网最佳学习资料汇总
  7. 如何让VsCode自动格式化代码?
  8. 基于ThingsBoard二次开发的物联网平台ThingsKit-Link白皮书
  9. ubantu 防火墙
  10. Mac自启动程序管理
  11. oracle重做日志详解,oracle数据文件、控制文件、重做日志文件详解
  12. JavaScript实现动态时钟显示
  13. leetcode之-题17
  14. Mybatis Could not find SQL statement to include with refid ‘xxx‘的问题
  15. Dell(戴尔)电脑恢复BIOS出厂设置的方法
  16. 张静君的“商脉通”和企业博客
  17. 手机网游制造之请求处理篇(已发《电脑报》)
  18. 深度强化学习系列(8): Prioritized Experience Replay(PER-DQN)原理及实现
  19. Zcash halo2 背后技术衍化介绍
  20. 利用 Fastjson 注入 Spring 内存马,太秀了~!

热门文章

  1. 学生对象数组实现按年龄排序 按成绩排序1022
  2. eclipse的安装与基本配置
  3. selenium-隐式等待和显式等待-0223
  4. Laravel+passport 实现API认证
  5. nmon工具安装及使用
  6. 数据类型之数字类型—运算符
  7. MongoDB分布式集群分片
  8. linux网络服务之dns
  9. Oracle8的不安全因素及几点说明
  10. 容器编排技术 -- Kubernetes StatefulSets