Gibt es eine Dokumentation zum Format der Shell-Befehle getevent und sendevent? speziell für touchevents.oder ist dies geräteabhängig?
Es ist ein bisschen schwer zu erraten, was diese IDs tun.
Gibt es eine Dokumentation zum Format der Shell-Befehle getevent und sendevent? speziell für touchevents.oder ist dies geräteabhängig?
Es ist ein bisschen schwer zu erraten, was diese IDs tun.
Auf der AOSP-Site gibt es einige Dokumentationen:
Plus einige Howtos wie z. B.
In der Antwort auf Ihre Frage in Google Groups heißt es jedoch:
Nein, das ist ziemlich geräteabhängig. getevent druckt eine Zusammenfassung aller Geräte, damit Sie wissen, um welche es sich handelt. Die für ein Gerät generierten Daten sind im Allgemeinen das Ereignisprotokoll des Linux-Kernels, sodass Sie dort nach weiterer Hilfe suchen können. Es gibt jedoch keine Garantie dafür, dass ein bestimmtes Gerät diese Konventionen befolgt.
Das hängt von den Faktoren für den betreffenden Kernel ab:
uinput
aktiviert ist, ist das gut ... /dev / input / event
X Wenn dies die drei oben genannten Kriterien erfüllt, lesen Sie bestimmte Ereignisse aus / dev / input / event
X, wobei X eine Zahl ist. Dies wird beim Booten abhängig von der Reihenfolge festgelegt die entsprechenden Treiber zu laden. Dies ist unterschiedlich, aber Sie können es ausprobieren und sehen:
adb shell cat / dev / input / event
X (wobei X eine Zahl ist, müssen Sie dies tun Vorab wissen!) / dev / input / event
X, das ausgegeben wird. Die Werte sind in codierter Form, basierend auf der Eingabestruktur des Kernels - struct input_event
, die in den meisten Kernelquellen unter include / linux / input zu finden ist .h
.
Sei vorsichtig! Abhängig vom verwendeten Touchscreen-Treiber geben einige nicht die richtigen Koordinaten zurück - dies bleibt als Übung übrig :)
Auf dem Samsung GT-i5500 mit Eclair / dev / input / event2
ist der Touchscreen und die Werte sind in verschlüsselter Form. Dies ist nicht selbstverständlich, da dies davon abhängt, welcher Touchscreen-Treiber verwendet wird. Auf dem Sony ST15i, auf dem ICS ausgeführt wird, ist es überraschenderweise dasselbe! Aber auf dem Zte Blade, seinem /dev/input/event1
.
Übrigens habe ich vor ungefähr einem Jahr einige Arbeiten an der Erstellung eines Touchscreens für ClockWorkMod Recovery durchgeführt, der gefunden werden kann drüben auf Modaco.
Der wirklich schmerzhafte Teil bestand darin, festzustellen, welches Ereignis der Touchscreen war, und entsprechend darauf zu reagieren, der auf Zte Skate, Zte Racer und Samsung GT-i5500 portiert wurde.