Android 提供的工具
getEvent 可以获取输入的touch信息
sendEvent 发动一个touch信息
https://blog.csdn.net/hellowxwworld/article/details/10732863/
https://blog.csdn.net/hellowxwworld/article/details/10733567
getevent
HWTAS:/ $ getevent
add device 1: /dev/input/event7
name: "Flydigi Wasp2"
could not get driver version for /dev/input/mouse1, Not a typewriter
add device 2: /dev/input/event0
name: "soundtrigger_input_dev"
could not get driver version for /dev/input/mice, Not a typewriter
could not get driver version for /dev/input/mouse0, Not a typewriter
add device 3: /dev/input/event4
name: "huawei,ts_pen"
add device 4: /dev/input/event1
name: "hisi_pmic_gpio_key"
add device 5: /dev/input/event3
name: "input_mt_wrapper"
add device 6: /dev/input/event5
name: "fingerprint"
add device 7: /dev/input/event6
name: "hi3xxx_hi6405_card Headset Jack"
add device 8: /dev/input/event2
name: "hisi_on"
getevent -v /dev/input/event7
Flydigi Wasp2
- -v:根据 mask 值显示相关信息,执行后会一直显示上报数据
errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64
默认显示 dev| name| info| vers = 30;
130|HWTAS:/ $ getevent -v /dev/input/event7
add device 1: /dev/input/event7
bus: 0005
vendor 1915
product 0040
version 0101
name: "Flydigi Wasp2"
location: ""
id: "cb:e9:1f:78:e3:ce"
version: 1.0.1
- -p:显示设备支持的事件类型和编码方式
- 传统模式
OnePlus7Pro:/ # getevent -i
add device 1: /dev/input/event12
bus: 0005
vendor 1915
product 0040
version 0101
name: "Flydigi Wasp2"
location: ""
id: "CE:E3:78:1F:E9:CB"
version: 1.0.1
events:
KEY (0001): 0130 0131 0133 0134 0136 0137 0138 0139
013a 013b 013d 013e
ABS (0003): 0000 : value 0, min -128, max 127, fuzz 0, flat 15, resolution 0
0001 : value -3, min -128, max 127, fuzz 0, flat 15, resolution 0
0009 : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
000a : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
0010 : value 0, min -1, max 1, fuzz 0, flat 0, resolution 0
0011 : value 0, min -1, max 1, fuzz 0, flat 0, resolution 0
0028 : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
0029 : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
002a : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
002b : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
MSC (0004): 0004
input props:
<none>
HID descriptor: 0005:1915:0040.0010
05 01 09 05 a1 01 85 01 a1 02 09 30 09 31 15 80 25 7f 35 80 45 7f 75 08 95 02 81 02 09 40 09 41 09 42 09 43 15 00 26 ff 00 75 08 95 04 81 02 75 04 95 01 15 01 25 08 46 3b 01 65 14 09 39 81 42 65 00 05 09 95 0c 75 01 25 01 15 00 09 01 09 02 09 04 09 05 09 07 09 08 09 09 09 0a 09 0b 09 0c 09 0e 09 0f 81 02 05 02 15 00 26 ff 00 09 c5 09 c4 95 02 75 08 81 02 c0 c0
INPUT(1)[INPUT]
Field(0)
Application(GenericDesktop.GamePad)
Usage(2)
GenericDesktop.X
GenericDesktop.Y
Logical Minimum(-128)
Logical Maximum(127)
Physical Minimum(-128)
Physical Maximum(127)
Report Size(8)
Report Count(2)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Application(GenericDesktop.GamePad)
Usage(4)
GenericDesktop.Vx
GenericDesktop.Vy
GenericDesktop.Vz
GenericDesktop.Vbrx
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(-128)
Physical Maximum(127)
Report Size(8)
Report Count(4)
Report Offset(16)
Flags( Variable Absolute )
Field(2)
Application(GenericDesktop.GamePad)
Usage(1)
GenericDesktop.HatSwitch
Logical Minimum(1)
Logical Maximum(8)
Physical Minimum(-128)
Physical Maximum(315)
Unit(English Rotation : Degrees)
Report Size(4)
Report Count(1)
Report Offset(48)
Flags( Variable Absolute NullState )
Field(3)
Application(GenericDesktop.GamePad)
Usage(12)
Button.0001
Button.0002
Button.0004
Button.0005
Button.0007
Button.0008
Button.0009
Button.000a
Button.000b
Button.000c
Button.000e
Button.000f
Logical Minimum(0)
Logical Maximum(1)
Physical Minimum(-128)
Physical Maximum(315)
Report Size(1)
Report Count(12)
Report Offset(52)
Flags( Variable Absolute )
Field(4)
Application(GenericDesktop.GamePad)
Usage(2)
Simulation.00c5
Simulation.00c4
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(-128)
Physical Maximum(315)
Report Size(8)
Report Count(2)
Report Offset(64)
Flags( Variable Absolute )
GenericDesktop.X ---> Absolute.X
GenericDesktop.Y ---> Absolute.Y
GenericDesktop.Vx ---> Absolute.Misc
GenericDesktop.Vy ---> Absolute.?
GenericDesktop.Vz ---> Absolute.?
GenericDesktop.Vbrx ---> Absolute.?
GenericDesktop.HatSwitch ---> Absolute.Hat0X
Button.0001 ---> Key.BtnA
Button.0002 ---> Key.BtnB
Button.0004 ---> Key.BtnX
Button.0005 ---> Key.BtnY
Button.0007 ---> Key.BtnTL
Button.0008 ---> Key.BtnTR
Button.0009 ---> Key.BtnTL2
Button.000a ---> Key.BtnTR2
Button.000b ---> Key.BtnSelect
Button.000c ---> Key.BtnStart
Button.000e ---> Key.BtnThumbL
Button.000f ---> Key.BtnThumbR
Simulation.00c5 ---> Absolute.Brake
Simulation.00c4 ---> Absolute.Gas
- 智联模式
add device 12: /dev/input/event10
bus: 0000
vendor 0000
product 0000
version 0000
name: "STM VL53L1 proximity sensor"
location: ""
id: ""
version: 1.0.1
events:
ABS (0003): 0006 : value 0, min 0, max -1, fuzz 0, flat 0, resolution 0
0007 : value 0, min 0, max -1, fuzz 0, flat 0, resolution 0
0008 : value 9216, min 0, max -1, fuzz 0, flat 0, resolution 0
0009 : value 0, min 0, max -1, fuzz 0, flat 0, resolution 0
000a : value -635371776, min 0, max -1, fuzz 0, flat 0, resolution 0
0010 : value 1586978789, min 0, max -1, fuzz 0, flat 0, resolution 0
0011 : value 190819, min 0, max -1, fuzz 0, flat 0, resolution 0
0012 : value 917506, min 0, max -1, fuzz 0, flat 0, resolution 0
0013 : value 917524, min 0, max -1, fuzz 0, flat 0, resolution 0
0014 : value 99942454, min 0, max -1, fuzz 0, flat 0, resolution 0
0015 : value 91096685, min 0, max -1, fuzz 0, flat 0, resolution 0
0016 : value 881664, min 0, max -1, fuzz 0, flat 0, resolution 0
0017 : value 24064, min 0, max -1, fuzz 0, flat 0, resolution 0
0019 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
001a : value 59970, min 0, max -1, fuzz 0, flat 0, resolution 0
001b : value 1520, min 0, max -1, fuzz 0, flat 0, resolution 0
001c : value 82, min 0, max -1, fuzz 0, flat 0, resolution 0
0020 : value 0, min 0, max -1, fuzz 0, flat 0, resolution 0
0028 : value 0, min 0, max -1, fuzz 0, flat 0, resolution 0
input props:
<none>
add device 13: /dev/input/event3
bus: 0000
vendor 0000
product 0000
version 0000
name: "gf_input"
location: ""
id: ""
version: 1.0.1
events:
KEY (0001): 003c 0066 0067 0069 006a 006c 0074 008b
009e 0131
input props:
<none>
OnePlus7Pro:/ # getevent -i
add device 1: /dev/input/event12
bus: 0005
vendor 1915
product 0040
version 0101
name: "Flydigi Wasp2"
location: ""
id: "CE:E3:78:1F:E9:CB"
version: 1.0.1
events:
KEY (0001): 014a
ABS (0003): 0000 : value 225, min 0, max 2047, fuzz 0, flat 0, resolution 0
0001 : value 903, min 0, max 2047, fuzz 0, flat 0, resolution 0
002f : value 0, min 0, max 7, fuzz 0, flat 0, resolution 0
0035 : value 0, min 0, max 2047, fuzz 0, flat 0, resolution 0
0036 : value 0, min 0, max 2047, fuzz 0, flat 0, resolution 0
0039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0
input props:
INPUT_PROP_DIRECT
HID descriptor: 0005:1915:0040.0011
05 0d 09 04 a1 01 09 22 a1 02 09 42 15 00 25 01 75 01 95 01 81 02 09 32 81 02 75 06 09 51 95 01 81 02 05 01 16 00 00 26 ff 07 75 0c 55 00 65 00 09 30 35 00 46 00 00 81 02 09 31 81 02 c0 a1 02 05 0d 09 42 15 00 25 01 75 01 95 01 81 02 09 32 81 02 75 06 09 51 95 01 81 02 05 01 16 00 00 26 ff 07 75 0c 55 00 65 00 09 30 35 00 46 00 00 81 02 09 31 81 02 c0 a1 02 05 0d 09 42 15 00 25 01 75 01 95 01 81 02 09 32 81 02 75 06 09 51 95 01 81 02 05 01 16 00 00 26 ff 07 75 0c 55 00 65 00 09 30 35 00 46 00 00 81 02 09 31 81 02 c0 a1 02 05 0d 09 42 15 00 25 01 75 01 95 01 81 02 09 32 81 02 75 06 09 51 95 01 81 02 05 01 16 00 00 26 ff 07 75 0c 55 00 65 00 09 30 35 00 46 00 00 81 02 09 31 46 00 00 81 02 c0 05 0d 09 54 95 01 75 08 15 00 25 08 81 02 09 55 b1 02 c0
INPUT[INPUT]
Field(0)
Logical(Digitizers.Finger)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.TipSwitch
Logical Minimum(0)
Logical Maximum(1)
Report Size(1)
Report Count(1)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Logical(Digitizers.Finger)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.InRange
Logical Minimum(0)
Logical Maximum(1)
Report Size(1)
Report Count(1)
Report Offset(1)
Flags( Variable Absolute )
Field(2)
Logical(Digitizers.Finger)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.ContactID
Logical Minimum(0)
Logical Maximum(1)
Report Size(6)
Report Count(1)
Report Offset(2)
Flags( Variable Absolute )
Field(3)
Logical(Digitizers.Finger)
Application(Digitizers.TouchScreen)
Usage(1)
GenericDesktop.X
Logical Minimum(0)
Logical Maximum(2047)
Report Size(12)
Report Count(1)
Report Offset(8)
Flags( Variable Absolute )
Field(4)
Logical(Digitizers.Finger)
Application(Digitizers.TouchScreen)
Usage(1)
GenericDesktop.Y
Logical Minimum(0)
Logical Maximum(2047)
Report Size(12)
Report Count(1)
Report Offset(20)
Flags( Variable Absolute )
Field(5)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.TipSwitch
Logical Minimum(0)
Logical Maximum(1)
Report Size(1)
Report Count(1)
Report Offset(32)
Flags( Variable Absolute )
Field(6)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.InRange
Logical Minimum(0)
Logical Maximum(1)
Report Size(1)
Report Count(1)
Report Offset(33)
Flags( Variable Absolute )
Field(7)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.ContactID
Logical Minimum(0)
Logical Maximum(1)
Report Size(6)
Report Count(1)
Report Offset(34)
Flags( Variable Absolute )
Field(8)
Application(Digitizers.TouchScreen)
Usage(1)
GenericDesktop.X
Logical Minimum(0)
Logical Maximum(2047)
Report Size(12)
Report Count(1)
Report Offset(40)
Flags( Variable Absolute )
Field(9)
Application(Digitizers.TouchScreen)
Usage(1)
GenericDesktop.Y
Logical Minimum(0)
Logical Maximum(2047)
Report Size(12)
Report Count(1)
Report Offset(52)
Flags( Variable Absolute )
Field(10)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.TipSwitch
Logical Minimum(0)
Logical Maximum(1)
Report Size(1)
Report Count(1)
Report Offset(64)
Flags( Variable Absolute )
Field(11)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.InRange
Logical Minimum(0)
Logical Maximum(1)
Report Size(1)
Report Count(1)
Report Offset(65)
Flags( Variable Absolute )
Field(12)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.ContactID
Logical Minimum(0)
Logical Maximum(1)
Report Size(6)
Report Count(1)
Report Offset(66)
Flags( Variable Absolute )
Field(13)
Application(Digitizers.TouchScreen)
Usage(1)
GenericDesktop.X
Logical Minimum(0)
Logical Maximum(2047)
Report Size(12)
Report Count(1)
Report Offset(72)
Flags( Variable Absolute )
Field(14)
Application(Digitizers.TouchScreen)
Usage(1)
GenericDesktop.Y
Logical Minimum(0)
Logical Maximum(2047)
Report Size(12)
Report Count(1)
Report Offset(84)
Flags( Variable Absolute )
Field(15)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.TipSwitch
Logical Minimum(0)
Logical Maximum(1)
Report Size(1)
Report Count(1)
Report Offset(96)
Flags( Variable Absolute )
Field(16)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.InRange
Logical Minimum(0)
Logical Maximum(1)
Report Size(1)
Report Count(1)
Report Offset(97)
Flags( Variable Absolute )
Field(17)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.ContactID
Logical Minimum(0)
Logical Maximum(1)
Report Size(6)
Report Count(1)
Report Offset(98)
Flags( Variable Absolute )
Field(18)
Application(Digitizers.TouchScreen)
Usage(1)
GenericDesktop.X
Logical Minimum(0)
Logical Maximum(2047)
Report Size(12)
Report Count(1)
Report Offset(104)
Flags( Variable Absolute )
Field(19)
Application(Digitizers.TouchScreen)
Usage(1)
GenericDesktop.Y
Logical Minimum(0)
Logical Maximum(2047)
Report Size(12)
Report Count(1)
Report Offset(116)
Flags( Variable Absolute )
Field(20)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.ContactCount
Logical Minimum(0)
Logical Maximum(8)
Report Size(8)
Report Count(1)
Report Offset(128)
Flags( Variable Absolute )
FEATURE[FEATURE]
Field(0)
Application(Digitizers.TouchScreen)
Usage(1)
Digitizers.ContactMaximumNumber
Logical Minimum(0)
Logical Maximum(8)
Report Size(8)
Report Count(1)
Report Offset(0)
Flags( Variable Absolute )
Digitizers.TipSwitch ---> Key.Touch
Digitizers.InRange ---> Sync.Report
Digitizers.ContactID ---> Sync.Report
GenericDesktop.X ---> Absolute.MTPositionX
GenericDesktop.Y ---> Absolute.MTPositionY
Digitizers.TipSwitch ---> Key.Touch
Digitizers.InRange ---> Sync.Report
Digitizers.ContactID ---> Sync.Report
GenericDesktop.X ---> Absolute.MTPositionX
GenericDesktop.Y ---> Absolute.MTPositionY
Digitizers.TipSwitch ---> Key.Touch
Digitizers.InRange ---> Sync.Report
Digitizers.ContactID ---> Sync.Report
GenericDesktop.X ---> Absolute.MTPositionX
GenericDesktop.Y ---> Absolute.MTPositionY
Digitizers.TipSwitch ---> Key.Touch
Digitizers.InRange ---> Sync.Report
Digitizers.ContactID ---> Sync.Report
GenericDesktop.X ---> Absolute.MTPositionX
GenericDesktop.Y ---> Absolute.MTPositionY
Digitizers.ContactCount ---> Sync.Report
- -i:显示设备的所有信息和支持的事件,比 -p 显示更多信息
add device 1: /dev/input/event12
bus: 0005
vendor 1915
product 0040
version 0101
name: "Flydigi Wasp2"
location: ""
id: "CE:E3:78:1F:E9:CB"
version: 1.0.1
events:
KEY (0001): 0130 0131 0133 0134 0136 0137 0138 0139
013a 013b 013d 013e
ABS (0003): 0000 : value -7, min -128, max 127, fuzz 0, flat 15, resolution 0
0001 : value 0, min -128, max 127, fuzz 0, flat 15, resolution 0
0009 : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
000a : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
0010 : value 0, min -1, max 1, fuzz 0, flat 0, resolution 0
0011 : value 0, min -1, max 1, fuzz 0, flat 0, resolution 0
0028 : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
0029 : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
002a : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
002b : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
MSC (0004): 0004
input props:
<none>
HID descriptor: 0005:1915:0040.0003
05 01 09 05 a1 01 85 01 a1 02 09 30 09 31 15 80 25 7f 35 80 45 7f 75 08 95 02 81 02 09 40 09 41 09 42 09 43 15 00 26 ff 00 75 08 95 04 81 02 75 04 95 01 15 01 25 08 46 3b 01 65 14 09 39 81 42 65 00 05 09 95 0c 75 01 25 01 15 00 09 01 09 02 09 04 09 05 09 07 09 08 09 09 09 0a 09 0b 09 0c 09 0e 09 0f 81
02 05 02 15 00 26 ff 00 09 c5 09 c4 95 02 75 08 81 02 c0 c0
INPUT(1)[INPUT]
Field(0)
Application(GenericDesktop.GamePad)
Usage(2)
GenericDesktop.X
GenericDesktop.Y
Logical Minimum(-128)
Logical Maximum(127)
Physical Minimum(-128)
Physical Maximum(127)
Report Size(8)
Report Count(2)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Application(GenericDesktop.GamePad)
Usage(4)
GenericDesktop.Vx
GenericDesktop.Vy
GenericDesktop.Vz
GenericDesktop.Vbrx
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(-128)
Physical Maximum(127)
Report Size(8)
Report Count(4)
Report Offset(16)
Flags( Variable Absolute )
Field(2)
Application(GenericDesktop.GamePad)
Usage(1)
GenericDesktop.HatSwitch
Logical Minimum(1)
Logical Maximum(8)
Physical Minimum(-128)
Physical Maximum(315)
Unit(English Rotation : Degrees)
Report Size(4)
Report Count(1)
Report Offset(48)
Flags( Variable Absolute NullState )
Field(3)
Application(GenericDesktop.GamePad)
Usage(12)
Button.0001
Button.0002
Button.0004
Button.0005
Button.0007
Button.0008
Button.0009
Button.000a
Button.000b
Button.000c
Button.000e
Button.000f
Logical Minimum(0)
Logical Maximum(1)
Physical Minimum(-128)
Physical Maximum(315)
Report Size(1)
Report Count(12)
Report Offset(52)
Flags( Variable Absolute )
Field(4)
Application(GenericDesktop.GamePad)
Usage(2)
Simulation.00c5
Simulation.00c4
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(-128)
Physical Maximum(315)
Report Size(8)
Report Count(2)
Report Offset(64)
Flags( Variable Absolute )
GenericDesktop.X ---> Absolute.X
GenericDesktop.Y ---> Absolute.Y
GenericDesktop.Vx ---> Absolute.Misc
GenericDesktop.Vy ---> Absolute.?
GenericDesktop.Vz ---> Absolute.?
GenericDesktop.Vbrx ---> Absolute.?
GenericDesktop.HatSwitch ---> Absolute.Hat0X
Button.0001 ---> Key.BtnA
Button.0002 ---> Key.BtnB
Button.0004 ---> Key.BtnX
Button.0005 ---> Key.BtnY
Button.0007 ---> Key.BtnTL
Button.0008 ---> Key.BtnTR
Button.0009 ---> Key.BtnTL2
Button.000a ---> Key.BtnTR2
Button.000b ---> Key.BtnSelect
Button.000c ---> Key.BtnStart
Button.000e ---> Key.BtnThumbL
Button.000f ---> Key.BtnThumbR
Simulation.00c5 ---> Absolute.Brake
Simulation.00c4 ---> Absolute.Gas
- -l:以文本形式输出事件类型和名称
EV_ABS ABS_Y 00000005
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_X fffffff1
EV_ABS ABS_Y 00000004
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_X fffffff2
EV_ABS ABS_Y 00000002
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_X fffffff3
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_X fffffff4
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_X fffffff5
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_X fffffff4
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_X fffffffa
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_X fffffff9
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_X fffffff8
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090001
EV_KEY BTN_GAMEPAD DOWN
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090001
EV_KEY BTN_GAMEPAD UP
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090001
EV_KEY BTN_GAMEPAD DOWN
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090001
EV_KEY BTN_GAMEPAD UP
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090001
EV_KEY BTN_GAMEPAD DOWN
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090001
EV_KEY BTN_GAMEPAD UP
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090002
EV_KEY BTN_EAST DOWN
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090002
EV_KEY BTN_EAST UP
EV_SYN SYN_REPORT 00000000
- 单手手表的touch
130|HWTAS:/ $ getevent -l /dev/input/event7
EV_MSC MSC_SCAN 0009000b
EV_KEY BTN_SELECT DOWN
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 0009000b
EV_KEY BTN_SELECT UP
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090001
EV_KEY BTN_GAMEPAD DOWN
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090001
EV_KEY BTN_GAMEPAD UP
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090007
EV_KEY BTN_TL DOWN
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090007
EV_KEY BTN_TL UP
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090001
EV_KEY BTN_GAMEPAD DOWN
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090001
EV_KEY BTN_GAMEPAD UP
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090002
EV_KEY BTN_EAST DOWN
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090002
EV_KEY BTN_EAST UP
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 0009000b
EV_KEY BTN_SELECT DOWN
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 0009000b
EV_KEY BTN_SELECT UP
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090009
EV_KEY BTN_TL2 DOWN
EV_ABS ABS_BRAKE 000000ff
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090009
EV_KEY BTN_TL2 UP
EV_ABS ABS_BRAKE 00000000
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090007
EV_KEY BTN_TL DOWN
EV_SYN SYN_REPORT 00000000
EV_MSC MSC_SCAN 00090007
EV_KEY BTN_TL UP
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_X fffffff9
EV_SYN SYN_REPORT 00000000
- 正常的touch 事件
130|HWTAS:/ $ getevent -l /dev/input/event3
EV_ABS ABS_MT_POSITION_X 0000029e
EV_ABS ABS_MT_POSITION_Y 0000063d
EV_ABS ABS_MT_PRESSURE 00000202
EV_ABS ABS_MT_TRACKING_ID 00000000
EV_ABS ABS_MT_TOUCH_MAJOR 000000be
EV_ABS ABS_MT_TOUCH_MINOR 000000b0
EV_ABS ABS_MT_ORIENTATION ffffffb1
EV_ABS ABS_MT_BLOB_ID 00000000
EV_SYN SYN_MT_REPORT 00000000
EV_KEY BTN_TOUCH DOWN
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 0000029e
EV_ABS ABS_MT_POSITION_Y 0000063d
EV_ABS ABS_MT_PRESSURE 00000223
EV_ABS ABS_MT_TRACKING_ID 00000000
EV_ABS ABS_MT_TOUCH_MAJOR 000000b0
EV_ABS ABS_MT_TOUCH_MINOR 000000b0
EV_ABS ABS_MT_ORIENTATION ffffffb1
EV_ABS ABS_MT_BLOB_ID 00000000
EV_SYN SYN_MT_REPORT 00000000
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 0000029e
EV_ABS ABS_MT_POSITION_Y 0000063d
EV_ABS ABS_MT_PRESSURE 00000233
EV_ABS ABS_MT_TRACKING_ID 00000000
EV_ABS ABS_MT_TOUCH_MAJOR 000000be
EV_ABS ABS_MT_TOUCH_MINOR 000000b0
EV_ABS ABS_MT_ORIENTATION ffffffaa
EV_ABS ABS_MT_BLOB_ID 00000000
EV_SYN SYN_MT_REPORT 00000000
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 0000029e
EV_ABS ABS_MT_POSITION_Y 0000063d
EV_ABS ABS_MT_PRESSURE 000001e8
EV_ABS ABS_MT_TRACKING_ID 00000000
EV_ABS ABS_MT_TOUCH_MAJOR 000000b0
EV_ABS ABS_MT_TOUCH_MINOR 000000b0
EV_ABS ABS_MT_ORIENTATION ffffffdd
EV_ABS ABS_MT_BLOB_ID 00000000
EV_SYN SYN_MT_REPORT 00000000
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 0000029e
EV_ABS ABS_MT_POSITION_Y 0000063d
EV_ABS ABS_MT_PRESSURE 0000008a
EV_ABS ABS_MT_TRACKING_ID 00000000
EV_ABS ABS_MT_TOUCH_MAJOR 000000ea
EV_ABS ABS_MT_TOUCH_MINOR 000000be
EV_ABS ABS_MT_ORIENTATION 00000006
EV_ABS ABS_MT_BLOB_ID 00000000
EV_SYN SYN_MT_REPORT 00000000
EV_SYN SYN_REPORT 00000000
EV_SYN SYN_MT_REPORT 00000000
EV_KEY BTN_TOUCH UP
EV_SYN SYN_REPORT 00000000
- -r:显示事件上报速率
hw_mate30
open_dev huawei,ts_pen /dev/input/event5
open_dev soundtrigger_input_dev /dev/input/event0
open_dev /dev/input/mice
open_dev /dev/input/mouse1
open_dev input_mt_wrapper /dev/input/event4
input props:
open_dev /dev/input/mouse0
open_dev fingerprint /dev/input/event3
open_dev hi3xxx_hi6405_card Headset Jack /dev/input/event6
open_dev hisi_on /dev/input/event2
open_dev hisi_pmic_gpio_key /dev/input/event1
vivo_X21A
open_dev ShootingPlus V3 a /dev/input/event8
input props:
open_dev /dev/input/mouse2
open_dev sdm660-snd-card-cdp Button Jack /dev/input/event7
open_dev sdm660-snd-card-cdp Headset Jack /dev/input/event6
open_dev goodixfp /dev/input/event4
open_dev vivo_ts /dev/input/event1
open_dev /dev/input/mouse0
open_dev synaptics_3706 /dev/input/event2
open_dev gpio-keys /dev/input/event5
open_dev synaptics_dsx_proximity_3706 /dev/input/event3
open_dev qpnp_pon /dev/input/event0
open_dev /dev/input/mice
open_dev /dev/input/mouse1
oneplus_7pro
open_dev sm8150-tavil-snd-card Button Jack /dev/input/event14
open_dev sm8150-tavil-snd-card Headset Jack /dev/input/event13
open_dev elliptic_ultrasound_proximity /dev/input/event12
open_dev motor /dev/input/event11
open_dev gf_input /dev/input/event3
open_dev qti-haptics /dev/input/event4
open_dev qpnp_pon /dev/input/event0
open_dev oneplus,fresh_rate /dev/input/event2
open_dev oneplus,dc_mode /dev/input/event1
open_dev touchpanel_ps /dev/input/event7
open_dev touchpanel_kpd /dev/input/event6
open_dev STM VL53L1 proximity sensor /dev/input/event10
open_dev oneplus,brightness /dev/input/event8
open_dev touchpanel /dev/input/event5
input props:
open_dev gpio-keys /dev/input/event9
pixl 2l
open_dev uinput-folio /dev/input/event5
open_dev uinput-fpc /dev/input/event4
open_dev touchscreen /dev/input/event3
input props:
INPUT_PROP_DIRECT
open_dev STM VL53L0 proximity sensor /dev/input/event1
open_dev qpnp_pon /dev/input/event0
open_dev gpio-keys /dev/input/event2
cat /proc/bus/input/devices打出来的信息
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="synaptics-rmi-touchscreen"
P: Phys=
S: Sysfs=/devices/virtual/input/input3
U: Uniq=
H: Handlers=event3 cpufreq
B: EV=b
B: KEY=400 0 4 0 2000000 0 40000800 40 0 0 0
B: ABS=650000 0
只读权限的问题
O_RDONLY
O_WRONLY
O_RDWR
再华为mate 30 上只读所以只能使用uinput
/dev/input/event%d
int getTouchEventNum() //判断触摸框事件是哪一个event
{
struct input_event inputEvent;
char name[64]; /* RATS: Use ok, but could be better */
char buf[256] = {0,}; /* RATS: Use ok */
int fd = 0;
int i;
for (i = 0; i < 32; i++) {
sprintf(name, "/dev/input/event%d", i);
if ((fd = open(name, O_RDONLY, 0)) >= 0) {
ioctl(fd, EVIOCGNAME(sizeof(buf)), buf);
if (strstr(buf, "touchscreen")) {
// close(fd);
// return i;
break;
}
printf("%s\n", name);
printf("name: %s\n", buf);
close(fd);
}
}
memset(&inputEvent,0,sizeof(inputEvent));
printf(": %d\n", fd);
while (1) {
if (read(fd, &inputEvent, sizeof(inputEvent)) == sizeof(inputEvent)) {
if (inputEvent.type == EV_KEY)
if (inputEvent.value == 0 || inputEvent.value == 1) {
printf("key %d %s\n", inputEvent.code, (inputEvent.value) ? "Pressed" : "Released");
if (inputEvent.code == KEY_ESC)
break;
}
}
}
close(fd);
return -1;
}
mocute
add device 1: /dev/input/event4
bus: 0005
vendor 0000
product 0000
version 0000
name: "MOCUTE-054-MX01-HID"
location: ""
id: "e0:f8:48:54:00:00"
version: 1.0.1
events:
KEY (0001): KEY_ESC KEY_ENTER KEY_KPMINUS KEY_KPPLUS
KEY_UP KEY_LEFT KEY_RIGHT KEY_DOWN
KEY_INSERT KEY_DELETE KEY_MUTE KEY_VOLUMEDOWN
KEY_VOLUMEUP KEY_POWER KEY_PAUSE KEY_SCALE
KEY_STOP KEY_PROPS KEY_UNDO KEY_COPY
KEY_OPEN KEY_PASTE KEY_FIND KEY_CUT
KEY_HELP KEY_MENU KEY_CALC KEY_SLEEP
KEY_FILE KEY_WWW KEY_COFFEE KEY_MAIL
KEY_BOOKMARKS KEY_BACK KEY_FORWARD KEY_EJECTCD
KEY_NEXTSONG KEY_PLAYPAUSE KEY_PREVIOUSSONG KEY_STOPCD
KEY_RECORD KEY_REWIND KEY_PHONE KEY_CONFIG
KEY_HOMEPAGE KEY_REFRESH KEY_EXIT KEY_EDIT
KEY_SCROLLUP KEY_SCROLLDOWN KEY_NEW KEY_REDO
KEY_CLOSE KEY_PLAY KEY_FASTFORWARD KEY_BASSBOOST
KEY_PRINT KEY_CAMERA KEY_CHAT KEY_SEARCH
KEY_FINANCE KEY_CANCEL KEY_BRIGHTNESSDOWN KEY_BRIGHTNESSUP
KEY_KBDILLUMTOGGLE KEY_KBDILLUMDOWN KEY_KBDILLUMUP KEY_SEND
KEY_REPLY KEY_FORWARDMAIL KEY_SAVE KEY_DOCUMENTS
KEY_UNKNOWN KEY_VIDEO_NEXT KEY_BRIGHTNESS_AUTO BTN_MISC
BTN_MOUSE BTN_RIGHT BTN_MIDDLE BTN_SIDE
BTN_EXTRA BTN_GAMEPAD BTN_EAST BTN_C
BTN_NORTH BTN_WEST BTN_Z BTN_TL
BTN_TR BTN_TL2 BTN_TR2 BTN_SELECT
BTN_START BTN_MODE BTN_THUMBL BTN_THUMBR
013f KEY_SELECT KEY_GOTO KEY_INFO
KEY_PROGRAM KEY_PVR KEY_SUBTITLE KEY_ZOOM
KEY_KEYBOARD KEY_PC KEY_TV KEY_TV2
KEY_VCR KEY_VCR2 KEY_SAT KEY_CD
KEY_TAPE KEY_TUNER KEY_PLAYER KEY_DVD
KEY_AUDIO KEY_VIDEO KEY_MEMO KEY_CALENDAR
KEY_RED KEY_GREEN KEY_YELLOW KEY_BLUE
KEY_CHANNELUP KEY_CHANNELDOWN KEY_LAST KEY_NEXT
KEY_RESTART KEY_SLOW KEY_SHUFFLE KEY_PREVIOUS
KEY_VIDEOPHONE KEY_GAMES KEY_ZOOMIN KEY_ZOOMOUT
KEY_ZOOMRESET KEY_WORDPROCESSOR KEY_EDITOR KEY_SPREADSHEET
KEY_GRAPHICSEDITOR KEY_PRESENTATION KEY_DATABASE KEY_NEWS
KEY_VOICEMAIL KEY_ADDRESSBOOK KEY_MESSENGER KEY_DISPLAYTOGGLE
KEY_SPELLCHECK KEY_LOGOFF KEY_MEDIA_REPEAT KEY_IMAGES
KEY_BUTTONCONFIG KEY_TASKMANAGER KEY_JOURNAL KEY_CONTROLPANEL
KEY_APPSELECT KEY_SCREENSAVER KEY_VOICECOMMAND KEY_ASSISTANT
KEY_BRIGHTNESS_MIN KEY_BRIGHTNESS_MAX KEY_KBDINPUTASSIST_P KEY_KBDINPUTASSIST_N
KEY_KBDINPUTASSIST_P KEY_KBDINPUTASSIST_N KEY_KBDINPUTASSIST_A KEY_KBDINPUTASSIST_C
REL (0002): REL_X REL_Y REL_HWHEEL REL_WHEEL
ABS (0003): ABS_X : value 128, min 0, max 255, fuzz 0, flat 15, resolution 0
ABS_Y : value 128, min 0, max 255, fuzz 0, flat 15, resolution 0
ABS_Z : value 128, min 0, max 255, fuzz 0, flat 15, resolution 0
ABS_RZ : value 128, min 0, max 255, fuzz 0, flat 15, resolution 0
ABS_GAS : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
ABS_BRAKE : value 0, min 0, max 255, fuzz 0, flat 15, resolution 0
ABS_HAT0X : value 0, min -1, max 1, fuzz 0, flat 0, resolution 0
ABS_HAT0Y : value 0, min -1, max 1, fuzz 0, flat 0, resolution 0
ABS_VOLUME : value 0, min 0, max 896, fuzz 0, flat 0, resolution 0
MSC (0004): MSC_SCAN
input props:
<none>
于event0节点下读写魅族呼吸灯按钮也就是屏幕下方圆形的那个发光主键的“mxhub-keys”子系统
位于event4节点下读写重力传感器的“lsm330dlc_gyr”子系统
位于event3节点下读写加速度传感器的“lsm330dlc_acc”子系统
位于event1节点下读写红外线传感器的“gp2ap”子系统(魅族mx3是用红外线来测定光感和距离的)
位于event5节点下读写屏幕触摸的“mx_ts”子系统
位于event6节点下读写物理按键的“gpio-keys”子系统
位于event7节点下读写耳机按键的“Headset”子系统(有些手机监控线控设备的系统常以hook为名,这里魅族使用不多见Headset来表示该类不知是否是有布局头戴式设备的意义)
位于event2节点下读写罗盘的“compass”子系统
- tracking_id是 slot_id
fd_touch_0 x 34
fd_touch_0 y 2295
fd_touch_0 ABS_MT_TRACKING_ID 0
网友评论