Android添加一个新的按键

Android系统添加一个新的按键:

1 linux

需要linux input driver中添加相应按键的响应

2 xxx.kl中添加新的按键的定义:

文件内容大体如下:

key 116 POWER WAKE
key 102 HOME WAKE
key 139 MENU WAKE_DROPPED

key  213  RECORD
key 115 VOLUME_UP
key 114 VOLUME_DOWN
key 352 DPAD_CENTER WAKE_DROPPED

其中:

WAKE:系统在收到此按键时如果处于sleep状态会唤醒系统,并通知APP此按键事件

WAKE_DROPPED:系统在收到此按键时如果处于sleep状态会唤醒系统,但不会通知APP此按键事件

此文件在:/system/usr/keylayout

3 android java 层添加:

code中有如下内容:

    // NOTE: If you add a new keycode here you must also add it to:
    //  isSystem()
    //  native/include/android/keycodes.h
    //  frameworks/base/include/ui/KeycodeLabels.h
    //  external/webkit/WebKit/android/plugins/ANPKeyCodes.h
    //  tools/puppet_master/PuppetMaster/nav_keys.py
    //  frameworks/base/core/res/res/values/attrs.xml
    //  commands/monkey/Monkey.java
    //  emulator?

细节还在看~~~~


几个相关文件:

frameworks/base/services/java/com/android/server/WindowManagerService.java(事件分发给最前面的窗口) 
/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java(拦截消息的处理类) 
/frameworks/base/core/java/android/view/KeyEvent.java(按键事件定义) 
/frameworks/base/services/java/com/android/server/InputManager.Java(Java层输入管理) 
/frameworks/base/libs/ui/InputManager.cpp(native层输入管理) 
/frameworks/base/libs/ui/InputReader.cpp(事件读取线程) 
/frameworks/base/libs/ui/InputDispatcher.cpp(事件分发线程) 
/frameworks/base/libs/ui/EventHub.cpp(键码与键值转换)


你可能感兴趣的:(Android)