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.bustype
Vendor
→ id.vendor
Product
→ id.product
Version
→ id.version
N
→ name of the device
P
→ physical path to the device in the system hierarchy
S
→ sysfs path
U
→ unique identification code for the device (if device has it)
H
→ list of input handles associated with the device
B
→ bitmaps
PROP
→ device properties and quirks
EV
→ types of events supported by the device
KEY
→ keys/buttons this device has
MSC
→ miscellaneous events supported by the device
LED
→ leds present on the device
REL
→ relative address
ABS
→ 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