android 代码设置 键盘适应_MTK6577+Android之按键(key)修改
MTK6577+Android之按键(key)修改
1. 产品按键布局和定义
图1
图1括号里面的是android系统采用的键值,注意了,这可不是linux系统里用到的scan code。
2. 按键硬件设计
MTK6577的Keypad分为两部分:
(1) Keypad接口,包括8*8按键和一个专用的power按键。
(2) Key检测块(key detection block),提供按键按下、按键释放和抖动(de-bounce)机制。
按键和对应的行与列关系如下:
KCOL0(GPIO103/EINT30)
KCOL1(GPIO108/EINT31)
KCOL2
KROW0(GPIO98/EINT6)
F6(136,右边侧按键)
KROW1(GPIO97/EINT7)
F7(137,左边侧按键)
KROW2(GPIO95/EINT8)
F10(140,右边按键)
KROW3(GPIO99/EINT9)
F9(139,中间按键)
KROW7(GPIO107/EINT13)
F8(138,左边按键)
这是我们实际产品的按键定义,在这里,我重新定义,如下所示:
HW keycode
Linux keycode
Android code
右边侧按键
9
115---KEY_VOLUMEUP
24
左边侧按键
0
114---KEY_VOLUMEDOWN
25
左边按键
64
105--- KEY_LEFT
21
中间按键
28
28--- KEY_ENTER
66
右边按键
19
106--- KEY_RIGHT
22
3. 按键传递键值的流程
图2
4. 修改及编译
MTK6577提供\mediatek\source\dct\DrvGen.exe来配置GPIO设置、中断设置、ADC设置、KEYPAD设置和PMIC设置,打开的文件对应\mediatek\custom\hsimobile77_ics2\kernel\dct\dct\ codegen.dws:
4.1 DrvGen.exe的使用
图3
图3是在ubuntu系统安装了Wine之后,用Wine打开的。
(1) 打开DrvGen.exe
(2) 选择Open打开codegen.dws
(3) 如果要修改就选择Edit,修改完成之后可选择Gen Code来产生代码,更新的代码位于\mediatek\custom\hsimobile77_ics2\kernel\dct\dct目录下。也可以采用./mk drvgen命令来生成新的对应的代码。
(4) 然后选择Save,再Exit。
4.2 GPIO设置
根据上面表格,需要设置按键对应GPIO引脚的模式,如下图:
图4
红色矩形框是我新修改的,之前是NC状态,要配置为对应的模式,GPIO修改后对应的头文件是\mediatek\custom\hsimobile77_ics2\kernel\dct\dct\ cust_gpio_boot.h和cust_gpio_usage.h。
4.3 KEYPAD设置
结合上面的表格,知道哪个功能按键对应在哪一行和哪一列,配置如下:
图5
对应的头文件为\mediatek\custom\hsimobile77_ics2\kernel\dct\dct\ cust_kpd.h。
4.4 设置后生成新的代码
(1) ./mkdrvgren或是点击图3的Gen code
(2) ./mk rk
(3) ./mkbootimage
更新新的boot.img
参考:
MTK Android 之MT6577驱动笔记
android定制化软件修改或添加按键驱动的核心操作步骤讲解
android 代码设置 键盘适应_MTK6577+Android之按键(key)修改相关推荐
- android 代码设置 键盘适应_Android自适应软键盘的Dialog以及监听软键盘弹起
最近项目中遇到一个需求:新手引导.跟一般的新手引导没有什么太大区别,思路都是搞一个带阴影的遮罩层,然后在上边儿给一些提示性的文字,由于需求中有些特殊的地方,所以我用了一个全屏的dialog(而且,di ...
- android 代码设置 键盘适应_详细讲解Android修改键盘文字的方法
1.首先,针对EditText的设置 在xml布局中,针对EditText的设置. android:layout_width="match_parent" android:layo ...
- android 代码设置 键盘适应_硬核软件,能在电脑上控制iPhone和Android手机
在电脑上控制手机大概已经不是什么新鲜操作,小米.华为都为自家手机和电脑的联动推出了同屏操作之类的功能,此外也可以通过开源软件Scrcpy来在Windows或者macOS上实现对安卓手机的控制,这些基本 ...
- android 代码设置dialog 全屏,Android里把Dialog设置为全屏的方法
Android里把Dialog设置为全屏的方法 有的时候我们需要把Dialog设置为全屏,于是我们想到了如下的办法: //设置成全屏 LinearLayout.LayoutParams p = new ...
- android 代码设置EditText的hint字符
今天,简单讲讲android里如何在代码里设置 EditText的hint字符. 之前,我一般是直接在xml文件设置EditText 的hint字符,后来需要在代码里修改hint字符,发现自己居 ...
- android 铃声设置失败,无法通过Android代码设置铃声
我正在开发一个应用程序,它将随机设置用户已选择的铃声列表中的铃声.无法通过Android代码设置铃声 虽然我的代码适用于Android N及以上版本,但我遇到了Android M及以下版本的问题.我为 ...
- android 代码设置alignleft,如何动态的设置Relative Layout中按钮的layout_align_parent_right属性...
我动态的创建了一个Relative Layout:RelativeLayout layout = new RelativeLayout( this ); RelativeLayout.LayoutPa ...
- android 代码设置像素,【Android实例】用设计原则来重构1像素保活代码
1 类图 在[FJU项目]1像素进程保活(二)中,涉及到的几个类的类图如下所示(仅供参考): 实线箭头:关联 虚线箭头:依赖 重构前UML类图在上图中,OnePixelManager里面有太多的职责, ...
- android代码设置maxlength,android-使用maxLength使用3个点结束TextView
android-使用maxLength使用3个点结束TextView 我的布局中有一个TextView,它是layout_width中的wrap_content. 最多限制为15个字符,因此我正在使用 ...
- android代码设置弹窗颜色,Android编程实现简单设置按钮颜色的方法
本文实例讲述了Android编程实现简单设置按钮颜色的方法.分享给大家供大家参考,具体如下: 1.工程目录 a.在res目录-新建drawble文件夹放入自定义图片 2.main.xml androi ...
最新文章
- MySQL开发医药管理系统_java Web开发医药后台管理系统mysql版本源代码下载,支持中英文...
- 什么?iPhone 8发布会当晚,杭州竟然有土豪摔手机砸场子!
- NOIP2006提高组 能量项链
- 服务器内存使用率高找不到是哪个进程,内存占用率高,但是找不到内存消耗大的程序...
- offset系列,client系列,scroll系列回顾
- C++ 深浅拷贝 01
- CentOS 7 vi编辑命令
- 玩玩短视频平台和网课平台开发1——腾讯云对象储存COS的初步配置
- linux编译静态库的头文件,条件编译,头文件,静态库,共享库与多文件编程
- axure element元件_Axure教程,产品小白从0学起
- 绿坝老板不诚实,蒙骗政府官员
- linux服务器运维工程师怎么样,怎样才算合格的运维工程师?linux运维技术
- 类似于talkingdata的灵动功能的实现
- 优秀自律的人手机上都装了些什么app?看完你就懂了!
- Word2019建立自己的模板
- LTE:RA-RNTI;T-CRNTI;C-RNTI
- SQL注入-二次注入和多语句注入
- ArrayList常见练习题解析
- 网络舆论舆情监测怎么做的系统技术解决办法
- 使用openssl制作证书和进行CMS格式数字签名
热门文章
- cdr怎么把矩形去掉一个边_cdr怎么消除图形的边框?
- Assuming drive cache: write through ubuntu硬盘内存扩展
- 喉咙肿痛症状似流感 常州一男子延误治疗险送命
- 【MFC】进度条:Progress Control控件
- python 分支结构 比较大小
- 网站HTML SEO优化
- 159 samba 无法访问。您可能没有权限使用网络资源 net use命令
- 单片机_rom_ram,程序容量之迷
- [bzoj4134]ljw和lzr的hack比赛
- 深究递归和迭代的区别、优缺点及实例对比