zoukankan      html  css  js  c++  java
  • android 中如何添加新的键值,实现更多功能

    android 中如何添加新的键值,实现更多功能

    摘自这个网站:http://hi.chinaunix.net/?uid-21747227-action-viewspace-itemid-48301


     在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
                    <enum name="KEYCODE_MUTE"  value="91"/>
                   <enum name="KEYCODE_WLS" value="92" />

          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
            
              综上可知,我们可以根据需求定义自己的键值,并对键值所对应的事件信息进行合理化处理。


    注:
    7k_ffa_keypad.kl是专门给7k_ffa_keypad输入设备使用的keylayout文件,所以修改7k_ffa_keypad.kl文件只是给键盘输入增加键值。如果是其他设备的输入,如x_input,而且当没有x_iput.kl存在的时候,那么默认的kl文件就是qwerty.kl(android-root/development/emulator/keymaps/qwerty.kl)

    这个很重要。也就是说需要实现明白添加的键值是否是7k_ffa_keypad的input event
  • 相关阅读:
    yii 引入文件
    CodeForces 621C Wet Shark and Flowers
    面试题题解
    POJ 2251 Dungeon Master
    HDU 5935 Car(模拟)
    HDU 5938 Four Operations(暴力枚举)
    CodeForces 722C Destroying Array(并查集)
    HDU 5547 Sudoku(dfs)
    HDU 5583 Kingdom of Black and White(模拟)
    HDU 5512 Pagodas(等差数列)
  • 原文地址:https://www.cnblogs.com/yuzaipiaofei/p/4124386.html
Copyright © 2011-2022 走看看