RK3399添加物理按键
背景
Platform: RK3399
OS: Android7.1.2
Kernel: v4.4.103
调试
通过命令cat /proc/bus/input/devices 确认按键使用的键值对的文件名 通过“name”字段判断。
getevent可以查看上报的键值和状态
添加android已有的功能按键
当新增的按键功能是android系统默认自带的,
需要在frameworks/base/data/keyboards/Generic.kl 中找到你需要的按键键值
然后在对应的dts中添加对应的按键映射就可以了。
需确保使用的键值对的文件device/rockchip/common/rk29-keypad.kl里也有该键值对
添加自定义按键
具体可以参考某个已有的按键,在同一位置添加自定义按键
在device/rockchip/common/rk29-keypad.kl 中添加按键的键值对。驱动上报的键值。
frameworks/native/include/android/keycodes.h 和frameworks/native/include/input/InputEventLabels.h 中添加android层键值定义。
frameworks/base/core/java/android/view/KeyEvent.java 和frameworks/base/core/res/res/values/attrs.xml定义APP层按键常量。
frameworks/base/data/keyboards/Generic.kl 中添加键值对。
frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java 中的interceptKeyBeforeQueueing()函数中添加系统层按键处理
参考
https://blog.csdn.net/u010783226/article/details/940514620
Howard调试:事实上,通过
130|nct_zz:/proc/bus/input #
130|nct_zz:/proc/bus/input #
130|nct_zz:/proc/bus/input # getevent
add device 1: /dev/input/event1
name: "rk29-keypad"
add device 2: /dev/input/event0
name: "goodix-ts"
/dev/input/event1: 0001 003f 00000001 警急报警按下63
/dev/input/event1: 0000 0000 00000000
/dev/input/event1: 0001 003f 00000000 警急报警松开
/dev/input/event1: 0000 0000 00000000
然后在device/rockchip/common/rk29-keypad.kl中添加了相应键值 F5-->对应63
key 113 F12 //静音
key 59 F1 //线路输入
key 60 F2
key 61 F3 //听筒摘起
key 62 F4 //
key 63 F5 //紧急报警
然后在app中调用紧急报警键值(这里在上层会转换成KEYCODE_F5)
case KEYCODE_F5: // 紧急广播
if(BroadcastFragment.mbStartLocal == true){
break;
}
其他方法
另外 adb pull /system/usr/keylayout/rk29-keypad.kl
修改后直接 push 进去也可以完成任务
附件目录
https://download.csdn.net/download/yanhongfei268/85506599
RK3399添加物理按键相关推荐
- android8.1 添加物理按键流程
原文地址:https://blog.csdn.net/tt11212/article/details/87608373 一,添加android已有的功能按键 当新增的按键功能是android系统默认自 ...
- Android TV 悬浮球模拟物理按键
最近在体验实习的时候做了一个TV的内存管家,其中有个要求是实现一个悬浮球,模拟TV控制器的按键,实现上下左右,back,menu,home等效果,并且做一个火箭升空的效果.这时候才发现网上有关tv ...
- 关于LVGL下物理按键的使用
当时有一个想法,想用我珍藏3年全新未开封的mini开发板,使用LVGL显示,然后用物理按键控制,最终制作一个...好吧我编不下去了.其实就是想在LVGL界面下使用物理按键控制. 然后就在网上疯狂找使用 ...
- 案例分享:Qt+Arm+Fpga医疗肾镜(又名内窥镜)(实时影像、冻结、拍照、白平衡、九宫格、录像、背光调整、硬件光源调整、光源手动自动调整、物理按键)
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/111241205 长期持续带来更多项目与技术分 ...
- Android 10 新增物理按键
1.当驱动层添加完成配置后,通过getevent命令查看底层驱动配置的键值 Seoul_TF:/ $ Seoul_TF:/ $ getevent add device 1: /dev/input/ev ...
- Android模拟器AVD接收电脑键盘和模拟器物理按键输入
最近一直在做Android开发,由于心疼自己的手机,总是用模拟器进行开发,可是发现一个问题就是AVD无法接收电脑键盘和AVD物理按键输入,只能使用软键盘,总是用鼠标点,真心的疼,后来发现是因为新的AD ...
- 物理按键一键拍照,一键录像,一键录音
一键拍照,一键录像: (S版本) 首先在对应的键值逻辑上做逻辑处理 base/services/core/java/com/android/server/policy/PhoneWindowManag ...
- android系统底层驱动多个物理按键上报同一个键值给app层,app层如何区分
如果设备有多个按键上报同一个键值给app层,app通过getScanCode()可以区分是哪个物理按键,得到的值就是linux驱动层的扫描码
- android物理健代码,Android 物理按键整理及实例代码
先给大家看一段代码,然后说明. import android.app.Activity; import android.os.Bundle; import android.util.Log; impo ...
最新文章
- oracle之 手动创建 emp 表 与 dept 表
- 一文彻底理解Java单元测试
- (赞助5本)谷歌官方推荐的 TensorFlow 2 “豹书”来了!
- 【建议收藏】centos更新yum源为阿里云
- android实现自动横竖屏切换,android 中实现横竖屏切换【原创】
- OpenCV Mat基础认知感
- 职场 | 工作五年之后,对技术和业务的思考
- xampp服务器搭建和使用
- 走心地讨论一下,一个中国码农在硅谷求职的实用经历
- python接收邮件内容启动程序_如何使用python获取电子邮件的文本内容?
- Caused by: java.lang.SecurityException: com.example.geofences from uid 10049 not allowed to perform
- MATLAB实现偏最小,偏最小二乘法 matlab程序
- 微信小程序二手交易系统ssm框架
- 插件框架篇一之scrollbars
- cinta作业5:循环群
- 计算机数学基础 周密,一位计算机牛人的心得谈计算机和数学免费.doc
- Windows System Tool -- Windows Sysinternals Tools
- XP系统IE浏览器无法访问https
- python把视频切成2秒_python进行视频切割
- MAC 反编译安卓问题汇总