使用logcat里的按键值都是andoroid的键值,使用getevent命令可以获取ir key,linux key和androidkey的值。
使用"getevent","getevent -l"和"getevent-i" 命令获取ir key,linux key和androidkey的值的方法:
其中,EV_MSC行是IR code, EV_KEY行是linux key code
例如,按遥控器的按键(F8),通过下面的信息获取:
/dev/input/event0: 0004 000400000041 <--- IR Code 0x41=65
/dev/input/event0: 0001 0042 00000001 <---linux key code 0x42=66
/dev/input/event0:EV_MSC MSC_SCAN 00000041
/dev/input/event0:EV_KEY KEY_F8 DOWN <--- linux key name KEY_F8
/system/usr/keylayout/Vendor_3697_Product_0001.kl <--- 通过getevent-i 命令查找vender和product的值,根据这两个值可以知道具体的kl文件
key 66 F8 <---0x42=66 映射为F8 由F8查找到androidKEYCODE_F8 = 138
http://androidxref.com/4.4.4_r1/xref/frameworks/base/core/res/res/values/attrs.xml#1485
1485 <enum name="KEYCODE_F8" value="138" />
----------------------------------------------------------------------------------------------------------------------------------#getevent
add device 1: /dev/input/event2
name: "MStar Smart TV Keypad"
add device 2: /dev/input/event1
name: "MCE IR Keyboard/Mouse (ir)"
could not get driver version for/dev/input/mouse0, Not a typewriter
add device 3: /dev/input/event0
name: "MStar Smart TV IR Receiver"
could not get driver version for/dev/input/mice, Not a typewriter
/dev/input/event0: 0004 0004 00000041
/dev/input/event0: 0001 0042 00000001
/dev/input/event0: 0000 0000 00000000
/dev/input/event0: 0001 0042 00000000
/dev/input/event0: 0000 000000000000
----------------------------------------------------------------------------------------------------------------------------------# getevent -l
add device 1: /dev/input/event2
name: "MStar Smart TV Keypad"
add device 2: /dev/input/event1
name: "MCE IR Keyboard/Mouse (ir)"
could not get driver version for /dev/input/mouse0,Not a typewriter
add device 3: /dev/input/event0
name: "MStar Smart TV IR Receiver"
could not get driver version for/dev/input/mice, Not a typewriter
/dev/input/event0:EV_MSC MSC_SCAN 00000041
/dev/input/event0:EV_KEY KEY_F8 DOWN
/dev/input/event0:EV_SYN SYN_REPORT 00000000
/dev/input/event0:EV_KEY KEY_F8 UP
/dev/input/event0:EV_SYN SYN_REPORT 00000000
----------------------------------------------------------------------------------------------------------------------------------
getevent -i /dev/input/event0:
add device 1: /dev/input/event0
bus: 0000
vendor 3697
product 0001
version 0000
......