I need to write a script to detect if the physical touchscreen is connected to my Android device at boot time.
I tried to list the content of the folder /dev/input
You can read /proc/bus/input/devices
to get details of your existing input devices.
Depending on your hardware's name, you could do something like that and check if there is any output:
cat /proc/bus/input/devices | grep "Name=" | grep "Touch"
This is the full output of /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)
The B in front stands for bitmap, N, P, S, U, H are simply first letter in corresponding name value and I is for ID. In ordered fashion:
I
→ @id: id of the device (struct input_id)
Bus
→ id.bustypeVendor
→ id.vendorProduct
→ id.productVersion
→ id.versionN
→ name of the deviceP
→ physical path to the device in the system hierarchyS
→ sysfs pathU
→ unique identification code for the device (if device has it)H
→ list of input handles associated with the deviceB
→ bitmaps
PROP
→ device properties and quirksEV
→ types of events supported by the deviceKEY
→ keys/buttons this device hasMSC
→ miscellaneous events supported by the deviceLED
→ leds present on the deviceREL
→ relative addressABS
→ absolute address
To test if the device is actually attached, you can try simulating events and see if you get any errors:
input tap [x] [y]
Android comes with an input command-line tool that can simulate miscellaneous input events.
- input → The command line tool to send events
- tap → the action
- [x] → X coordinate on the screen
- [y] → Y coordinate on the screen