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)修改相关推荐

  1. android 代码设置 键盘适应_Android自适应软键盘的Dialog以及监听软键盘弹起

    最近项目中遇到一个需求:新手引导.跟一般的新手引导没有什么太大区别,思路都是搞一个带阴影的遮罩层,然后在上边儿给一些提示性的文字,由于需求中有些特殊的地方,所以我用了一个全屏的dialog(而且,di ...

  2. android 代码设置 键盘适应_详细讲解Android修改键盘文字的方法

    1.首先,针对EditText的设置 在xml布局中,针对EditText的设置. android:layout_width="match_parent" android:layo ...

  3. android 代码设置 键盘适应_硬核软件,能在电脑上控制iPhone和Android手机

    在电脑上控制手机大概已经不是什么新鲜操作,小米.华为都为自家手机和电脑的联动推出了同屏操作之类的功能,此外也可以通过开源软件Scrcpy来在Windows或者macOS上实现对安卓手机的控制,这些基本 ...

  4. android 代码设置dialog 全屏,Android里把Dialog设置为全屏的方法

    Android里把Dialog设置为全屏的方法 有的时候我们需要把Dialog设置为全屏,于是我们想到了如下的办法: //设置成全屏 LinearLayout.LayoutParams p = new ...

  5. android 代码设置EditText的hint字符

    今天,简单讲讲android里如何在代码里设置  EditText的hint字符. 之前,我一般是直接在xml文件设置EditText 的hint字符,后来需要在代码里修改hint字符,发现自己居 ...

  6. android 铃声设置失败,无法通过Android代码设置铃声

    我正在开发一个应用程序,它将随机设置用户已选择的铃声列表中的铃声.无法通过Android代码设置铃声 虽然我的代码适用于Android N及以上版本,但我遇到了Android M及以下版本的问题.我为 ...

  7. android 代码设置alignleft,如何动态的设置Relative Layout中按钮的layout_align_parent_right属性...

    我动态的创建了一个Relative Layout:RelativeLayout layout = new RelativeLayout( this ); RelativeLayout.LayoutPa ...

  8. android 代码设置像素,【Android实例】用设计原则来重构1像素保活代码

    1 类图 在[FJU项目]1像素进程保活(二)中,涉及到的几个类的类图如下所示(仅供参考): 实线箭头:关联 虚线箭头:依赖 重构前UML类图在上图中,OnePixelManager里面有太多的职责, ...

  9. android代码设置maxlength,android-使用maxLength使用3个点结束TextView

    android-使用maxLength使用3个点结束TextView 我的布局中有一个TextView,它是layout_width中的wrap_content. 最多限制为15个字符,因此我正在使用 ...

  10. android代码设置弹窗颜色,Android编程实现简单设置按钮颜色的方法

    本文实例讲述了Android编程实现简单设置按钮颜色的方法.分享给大家供大家参考,具体如下: 1.工程目录 a.在res目录-新建drawble文件夹放入自定义图片 2.main.xml androi ...

最新文章

  1. MySQL开发医药管理系统_java Web开发医药后台管理系统mysql版本源代码下载,支持中英文...
  2. 什么?iPhone 8发布会当晚,杭州竟然有土豪摔手机砸场子!
  3. NOIP2006提高组 能量项链
  4. 服务器内存使用率高找不到是哪个进程,内存占用率高,但是找不到内存消耗大的程序...
  5. offset系列,client系列,scroll系列回顾
  6. C++ 深浅拷贝 01
  7. CentOS 7 vi编辑命令
  8. 玩玩短视频平台和网课平台开发1——腾讯云对象储存COS的初步配置
  9. linux编译静态库的头文件,条件编译,头文件,静态库,共享库与多文件编程
  10. axure element元件_Axure教程,产品小白从0学起
  11. 绿坝老板不诚实,蒙骗政府官员
  12. linux服务器运维工程师怎么样,怎样才算合格的运维工程师?linux运维技术
  13. 类似于talkingdata的灵动功能的实现
  14. 优秀自律的人手机上都装了些什么app?看完你就懂了!
  15. Word2019建立自己的模板
  16. LTE:RA-RNTI;T-CRNTI;C-RNTI
  17. SQL注入-二次注入和多语句注入
  18. ArrayList常见练习题解析
  19. 网络舆论舆情监测怎么做的系统技术解决办法
  20. 使用openssl制作证书和进行CMS格式数字签名

热门文章

  1. cdr怎么把矩形去掉一个边_cdr怎么消除图形的边框?
  2. Assuming drive cache: write through ubuntu硬盘内存扩展
  3. 喉咙肿痛症状似流感 常州一男子延误治疗险送命
  4. 【MFC】进度条:Progress Control控件
  5. python 分支结构 比较大小
  6. 网站HTML SEO优化
  7. 159 samba 无法访问。您可能没有权限使用网络资源 net use命令
  8. 单片机_rom_ram,程序容量之迷
  9. [bzoj4134]ljw和lzr的hack比赛
  10. 深究递归和迭代的区别、优缺点及实例对比