您的位置:首页 > 移动开发 > Android开发

Android添加一个新的按键

2013-08-23 15:43 253 查看
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(键码与键值转换)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: