ITPub博客

首页 > Linux操作系统 > Linux操作系统 > android 添加按键[转]

android 添加按键[转]

原创 Linux操作系统 作者:bartfj 时间:2011-03-25 15:12:25 0 删除 编辑
android中,上层可使用的键值默认情况下是92个,从0-91;一般情况下,这些键值是够用的,但是如果想扩充的话,还是需要添加新的键值的,那么如何将一个新的键值从驱动的设置映射到上层,使应用可以对我们自定义的键值进行相应的处理呢?

         对keypad来说,涉及到的文件有以下几个:
        1,/vendor/qcom/7k_ffa_keypad.kl
               首先在此文件中,添加新的键值信息:Example: key   123    WLS   flag
              注意:新加的键值不要与已有的重复。

        2.  kernel/arch/arm/mach-msm/keypad_surf_ffa.c
              在keypad对应的键位添加自定义的键码  如 :123

       3.   frameworks/base/include/ui/keycodeLabels.h
               在数组keycodes 中添加 新定义的信息
                { "MUTE", 91 },  { "WLS" , 92 }
               枚举类型 KeyCode 中添加
                    kKeyCodeMute = 91
                    kKeyCodeWLS  = 92

       4.  frameworks/base/core/res/res/values/attrs.xml
               
               

      5.   frameworks/base/core/java/android/view/KeyEvent.java
              public static final int KEYCODE_MUTE          = 91;
              public static final int KEYCODE_WLS            = 92;
              注意:       private static final int LAST_KEYCODE    = KEYCODE_MUTE;
              应改为:   private static final int LAST_KEYCODE    = KEYCODE_WLS;
              
             在函数 public final boolean isSystem() 中,同样需要添加:
                case KEYCODE_SEARCH:
                case KEYCODE_WLS:

             通过以上的更改,新的键值就添加上去了,由于更改了 KeyEvent,影响到了API,
             所以需要make update-api
            
            如果对新键值进行处理,可以通过获取相应的keycode,对它进行处理;
            对于按键事件的处理一般如下文件中
    6.   frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java
        
          综上可知,我们可以根据需求定义自己的键值,并对键值所对应的事件信息进行合理化处理。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7232789/viewspace-690479/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-02-17

  • 博文量
    86
  • 访问量
    241287