小米設備イベント取得の記録
4583 ワード
Androidシステムには多くの小さなツールがあり、これらのツールを実行して、私たちは多くのデータを把握することができて、藤に沿って瓜を触ることができて、設備に対して特殊な操作をすることができます.
私の携帯電話のevent情報を記録します.私の携帯電話は小米版です.
次に、geteventを使用してデバイスの動作を理解し、geteventを使用してHandlerが指定したデバイスイベントをリスニングします.たとえば、次のようにします.
次に携帯電話の画面をクリックすると、以下のような内容が表示されます.
一度にappアイコンをクリックして画面のリスニングを行います.
getevent/dev/input/event1
私の携帯電話のevent情報を記録します.私の携帯電話は小米版です.
F:\eclipse\android_sdk-64\adt-bundle-windows-x86_64-20130219\sdk\platform-tools
adb shell
shell@android:/ $ cat /proc/bus/input/devices
cat /proc/bus/input/devices
I: Bus=0018 Vendor=0001 Product=0001 Version=0001
N: Name="mione-keypad" ---->
P: Phys=mione-keypad/input0
S: Sysfs=/devices/platform/msm_ssbi.0/pm8058-core/pm8xxx-keypad/input/input0
U: Uniq=
H: Handlers=event0
B: PROP=0
B: EV=13
B: KEY=40000000 0 0 0 0 0 0 10000 0 0 0 0 0 0 0 0 0 0 0 0 c0000 0 0 0
B: MSC=10
I: Bus=0018 Vendor=4654 Product=5000 Version=0100
N: Name="ft5x0x" ---->
P: Phys=/devices/i2c-3/3-0038/input/input1
S: Sysfs=/devices/i2c-3/3-0038/input/input1
U: Uniq=
H: Handlers=event1
B: PROP=0
B: EV=9
B: ABS=6640000 0
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="pmic8xxx_pwrkey" ---->
P: Phys=pmic8xxx_pwrkey/input0
S: Sysfs=/devices/platform/msm_ssbi.0/pm8058-core/pm8xxx-pwrkey/input/input2
U: Uniq=
H: Handlers=event2
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="lightsensor" ---->
P: Phys=/devices/virtual/input/input3
S: Sysfs=/devices/virtual/input/input3
U: Uniq=
H: Handlers=event3
B: PROP=0
B: EV=9
B: ABS=100 0
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="proximity" ----> ( )
P: Phys=/devices/virtual/input/input4
S: Sysfs=/devices/virtual/input/input4
U: Uniq=
H: Handlers=event4
B: PROP=0
B: EV=9
B: ABS=100 2000000
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="accelerometer" ---->
P: Phys=/devices/virtual/input/input5
S: Sysfs=/devices/virtual/input/input5
U: Uniq=
H: Handlers=event5
B: PROP=0
B: EV=9
B: ABS=7
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="compass" ---->
P: Phys=/devices/virtual/input/input6
S: Sysfs=/devices/virtual/input/input6
U: Uniq=
H: Handlers=event6
B: PROP=0
B: EV=9
B: ABS=7
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="8660_handset" ---->
P: Phys=pmic8058_othc/input0
S: Sysfs=/devices/platform/msm_ssbi.0/pm8058-core/pm8058-othc.1/input/input7
U: Uniq=
H: Handlers=event7
B: PROP=0
B: EV=23
B: KEY=10000 110 0 0 0 0 0
B: SW=4
次に、geteventを使用してデバイスの動作を理解し、geteventを使用してHandlerが指定したデバイスイベントをリスニングします.たとえば、次のようにします.
> adb shell getevent /dev/input/event1 (event1 )
次に携帯電話の画面をクリックすると、以下のような内容が表示されます.
[type] [code] [value]
0003 0039 00000000 --》 (57)
0003 0035 0000015d --》x 0x15d (53)
0003 0036 0000011d --》y 0x11d (54)
0003 003a 00000010 --》ABS_MT_PRESSURE (58)
0003 0032 00000010 --》ABS_MT_WIDTH_MAJOR (50)
0000 0002 00000000 --》SYN (2)
0000 0000 00000000
0003 0039 00000000 --》
0003 0035 0000015d --》x 0x15d
0003 0036 0000011d --》y 0x11d
0003 003a 00000001 --》ABS_MT_PRESSURE
0003 0032 00000001 --》ABS_MT_WIDTH_MAJOR
0000 0002 00000000 --》SYN
0000 0000 00000000
0000 0002 00000000
0000 0000 00000000
/frameworks/base/include/ui/EventHub.h code
#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */
#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */
#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */
#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */
#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */
#define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */
#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */
#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device (finger, pen, ...) */
#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */
#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */
#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */
一度にappアイコンをクリックして画面のリスニングを行います.
getevent/dev/input/event1
0003 0039 00000037 id
0003 0039 00000000
0003 0035 000000ae x
0003 0036 000001ca y
0003 003a 00000010
0003 0032 00000010
0000 0000 00000000
0003 003a 00000020
0003 0032 00000020
0000 0000 00000000
0003 0039 ffffffff id
0000 0000 00000000