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