android HID添加(二)---www按键添加

来源:互联网 发布:linux服务开机自启动 编辑:程序博客网 时间:2024/06/04 19:21

在http://blog.csdn.net/cuityanxi/article/details/17916165 我有写出怎样添加一个标准的HID,实际应用中经常有些特殊的功能键要处理,譬如“www”(两年前自己有给客户加过),本文就针对“www”如何添加做一个详细的说明吧。

  这里我就假设大家已经看过http://blog.csdn.net/cuityanxi/article/details/17916165


1、控制台获取“www”的物理按键值:0x6A


2、查看/kernel/drivers/hid/hid-input.c,6A对于“195”

static const unsigned char hid_keyboard[256] = { 0,  0,  0,  0, 30, 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38,50, 49, 24, 25, 16, 19, 31, 20, 22, 47, 17, 45, 21, 44,  2,  3, 4,  5,  6,  7,  8,  9, 10, 11, 28,  1, 14, 15, 57, 12, 13, 26,27, 43, 43, 39, 40, 41, 51, 52, 53, 58, 59, 60, 61, 62, 63, 64,65, 66, 67, 68, 87, 88, 99, 70,119,110,102,104,111,107,109,106,105,108,103, 69, 98, 55, 74, 78, 96, 79, 80, 81, 75, 76, 77, 71,72, 73, 82, 83, 86,127,116,117,197,184,195,196,187,188,189,190,



3、编辑Generic.kl,增加

key 195   KEY_WWW


4、KeyEvent,java

       a、增加:public static final int KEYCODE_KEY_WWW         = 211;

       b、

              names.append(KEYCODE_CALCULATOR, "KEYCODE_CALCULATOR");              names.append(KEYCODE_KEY_WWW, "KEYCODE_KEY_WWW");

       c、

    public final boolean dispatch(Callback receiver, DispatcherState state,            Object target) {        switch (mAction) {            case ACTION_DOWN: {              ...                        //yanxi add start forQT163 HID input(www )                        boolean res;                      if(KEYCODE_KEY_WWW == mKeyCode)                       {                       if( ((META_SHIFT_RIGHT_ON | META_SHIFT_ON)&this.mMetaState) == (META_SHIFT_RIGHT_ON | META_SHIFT_ON))                        {                       mScanCode = 195;//.com key value define in generic.kl     //this.mKeyCode = KEYCODE_POUND;//Mark to use generic.kcm define     res = receiver.onKeyDown(mKeyCode, this);     //Log.v("test3","mKeyCode:"+mKeyCode);                                             }                                         else                        {       this.mKeyCode = KEYCODE_W;       mScanCode = 17;//define in generic.kl                       receiver.onKeyDown(mKeyCode, this);receiver.onKeyDown(mKeyCode, this);                       res = receiver.onKeyDown(mKeyCode, this);                       }                                               }//yanxi add end for soniq QT163 HID input(www .com)                        else                  {                  res = receiver.onKeyDown(mKeyCode, this);                  }


                 


  5、/external/webkit/Source/WebKit/android/plugins/ANPKeyCodes.h

    

kKEY_WWW_ANPKeyCode  = 211,


 6、/frameworks/base/core/res/res/values/attrs.xml

      

  <enum name="KEYCODE_KEY_WWW" value="211" />



 7、frameworks/base/include/ui/KeycodeLabels.h

     

    { "KEY_WWW", 211 },    


 8、frameworks/base/native/include/android/keycodes.h

 

   AKEYCODE_KEY_WWW         = 211,


   


     完...

0 0