getevent –h (查看支持的参数,有时候借助不同的参数有很大帮助)
Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v[mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]
getevent命令能获取数据,说明input驱动层OK,且Eventhub.cpp层也能获取到数据
getevent命令打印数据格式:type=%d, code=%d, value=%d
@EventHub.cpp –》new 首先new一个设备结构,然后存放上述设备的信 息
eg:cat sys/class/input/event0/device/capabilities/key
crw-rw-rw- root input 13, 64 2013-01-01 08:00 event0
crw-rw-rw- root input 13, 65 2013-01-01 08:00 event1
ls system/usr/keylayout --》XX.kl文件
ls system/usr/keychars --》XX.kcm文件
ls system/usr/idc ??
input text
input keyevent
eg:模拟power键输入inputkeyevent KEYCODE_POWER 或 inputkeyevent 26
input [touchscreen|touchpad] tap
input [touchscreen|touchpad] swipe
input trackball press //按下确认
input trackball roll
系统拦截键值PhoneWindowManager.java-》interceptKeyBeforeDispatching函数
增加logcat信息 ,打印keycode ,scancode 等
PhoneWindowManager.java : logcat -s WindowManager
interceptKeyBeforeQueueing(){
。。。。。。。
final int keyCode =event.getKeyCode();
final int scanCode = event.getScanCode();
Log.e(TAG, "andy@----> keycode :" + event.keyCodeToString(keyCode) + " " + keyCode + " ,scanCode " + scanCode);
。。。。。
}
…………………………………………………………………………………………………………………………………………………
getevent 命令: (以音量+按键为例)
格式:type=%d, code=%d, value=%d
/dev/input/event0: 0001 0073 00000001 // 73 十六进制,对应十进制115 ,为scancode
/dev/input/event0: 0000 0000 00000000
/dev/input/event0: 0001 0073 00000000
/dev/input/event0: 0000 0000 00000000
对应的getevent –l 命令:
/dev/input/event0: EV_KEY KEY_VOLUMEUP DOWN
/dev/input/event0: EV_SYN SYN_REPORT 00000000
/dev/input/event0: EV_KEY KEY_VOLUMEUP UP
/dev/input/event0: EV_SYN SYN_REPORT 00000000
其中KEY_VOLUMEUP为scancode 115的宏定义,要在getevent中显示这个红名字,需要在内核的input.h和JB\system\core\toolbox\getevent.c
通过/dev/input/event0 可找到对应的输入设备,看当前是使用的哪个设备,如红外还是RC遥控器等,对应dumpsys input信息,可以找到对应的kl文件
…………………………………………………………………………………………………………………………………………………