我需要编写一个脚本来检测物理触摸屏在启动时是否连接到我的 Android 设备。
我试图列出文件夹的内容/dev/input
通过 adb,我获得以下输出:
root@q88:/dev/input # ls
event0
event1
event2
event3
event4
mice
如果我没有记错的话,event0
识别触摸屏,但无论触摸屏是否连接,它都是可见的。
有没有办法检测触摸屏是否连接到设备?
提前致谢。
你可以阅读/proc/bus/input/devices
to 获取现有输入设备的详细信息 https://unix.stackexchange.com/questions/74903/explain-ev-in-proc-bus-input-devices-data.
根据您的硬件名称,您可以执行类似的操作并检查是否有任何输出:
cat /proc/bus/input/devices | grep "Name=" | grep "Touch"
这是完整的输出/proc/bus/input/devices
:
I: Bus=0011 Vendor=0002 Product=0008 Version=2222
N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input2
H: Handlers=mouse1 event2 ts1
B: EV=f
B: KEY=420 0 70000 0 0 0 0 0 0 0 0
B: REL=3
B: ABS=1000003
[...] (blank line, next device)
前面的B代表位图,N、P、S、U、H只是第一个
相应名称值中的字母,I 代表 ID。已订购
时尚:
-
I
→ @id: id of the device (struct input_id)
-
Bus
→ id.总线类型
-
Vendor
→ 供应商 ID
-
Product
→ 产品 ID
-
Version
→ id.版本
-
N
→ 设备名称
-
P
→ 系统层次结构中设备的物理路径
-
S
→ sysfs 路径
-
U
→ 设备的唯一识别码(如果设备有)
-
H
→ 与设备关联的输入句柄列表
-
B
→ bitmaps
-
PROP
→ 设备属性和怪癖
-
EV
→ 设备支持的事件类型
-
KEY
→ 该设备具有的按键/按钮
-
MSC
→ 设备支持的其他事件
-
LED
→ 设备上有 LED
-
REL
→ 相对地址
-
ABS
→ 绝对地址
要测试设备是否实际连接,您可以尝试模拟事件并查看是否出现任何错误:
input tap [x] [y]
Android自带了一个输入命令行工具,可以模拟各种输入事件。
-
input → The command line tool to send events
- 点击 → 动作
- [x] → 屏幕上的X坐标
- [y] → 屏幕上的Y坐标
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)