鍵盤管理續1----添加系統鍵

 android 通過串口連接一個鍵盤管理模塊,鍵盤上有系統鍵、狀態鍵、數字鍵、字母鍵。添加一個系統鍵的管理需要修改的程序如下:

 

框架部分


./sdk/emulator/keymaps/qwerty.kl:key 250  MY_KEY WAKE 
        // 修改原始文件後,make android時 ./out/target/product/myXXXX/system/usr/keylayout/qwerty.kl 不會被重新生成。
// 可以且必須同時直接修改該文件。使原始文件和目標文件同步。使用clear android,可以使目標文件重新生成。


./bionic/libc/kernel/common/linux/input.h:#define KEY_MY_KEY 250    


./hardware/ril/reference-ril/uinput.c: [0x19] = KEY_MY_KEY,


./kernel/include/linux/input.h:#define KEY_MY_KEY 250          


./development/cmds/monkey/src/com/android/commands/monkey/MonkeySourceRandom.java:        "KEYCODE_MY_KEY",


./frameworks/base/include/ui/KeycodeLabels.h:    { "MY_KEY", 123 },


./frameworks/base/native/include/android/keycodes.h:    AKEYCODE_MY_KEY  = 123, 


./frameworks/base/core/res/res/values/attrs.xml:        <enum name="KEYCODE_MY_KEY" value="123" />


./frameworks/base/core/java/android/view/KeyEvent.java: 
                                    public static final int KEYCODE_MY_KEY = 123;
                                    private static final int LAST_KEYCODE           = KEYCODE_MY_KEY;


./frameworks/base/libs/ui/Input.cpp: case AKEYCODE_MY_KEY:


./frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java:
                      if (keyCode == KeyEvent.XXXXXXXXXXX) {
                             ;
                           } else   if (keyCode == KeyEvent.KEYCODE_MY_KEY) {  
                 Intent myIntent = new Intent("com.android.MyTest123.MY_KEY_123 ");
                      myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                      mContext.startActivity(myIntent);
                      return true;
                           } else  if (keyCode == KeyEvent.KEYCODE_HOME)   {
                             ;
                           }

 

 

java部分:

 

            <intent-filter>

                <action android:name="com.android.MyTest123.MY_KEY_123 " />

                <category android:name="android.intent.category.DEFAULT" />

            </intent-filter>

 

 

上述代碼中uinput部分借鑑了 Li XianJing 的uinput的思路,在此表示感謝。代碼是同事給的,不知道出處了 :-(     有關uinput編程的思路,也可以借鑑Gingerbread\external\bluetooth中的思路,在此我就不贅述了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章