Frage:
Dokumentation für adb shell getevent / sendevent
clamp
2012-07-22 15:13:49 UTC
view on stackexchange narkive permalink

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.

Zwei antworten:
Izzy
2012-08-14 19:29:55 UTC
view on stackexchange narkive permalink

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.

Nicht alle von ihnen funktionieren ... aus Sicherheitsgründen können Sie keine Berührungs- / Tastaturereignisse in eine Aktivität einfügen ... es sei denn, die App ist vom System signiert :)
Nun - die Frage betraf "jede Dokumentation" - nicht, ob etwas funktioniert :) Aber ich würde sagen, Ihr Lob soll zu "jeder Dokumentation" hinzugefügt werden, da dies ein nützlicher Hinweis ist!
Die URL für die Dokumentation wurde anscheinend in https://source.android.com/devices/input/getevent geändert
Vielen Dank, @Ramast, aktualisiert (und einige der anderen URLs auch - leider sind einige andere endgültig weg).
t0mm13b
2012-08-14 19:49:09 UTC
view on stackexchange narkive permalink

Das hängt von den Faktoren für den betreffenden Kernel ab:

  • Wenn uinput aktiviert ist, ist das gut ...
  • Touchscreen-Treiber, einige initialisieren sich so, dass sie sich an einer beliebigen Stelle innerhalb von /dev / input / event X
  • befinden. Wie der Kernel die Eingabe für die Hardwaretasten
verarbeitet

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!)
  • Je nachdem, um welches Ereignis es sich handelt, können Sie auf dem Bildschirm lustige Dinge sehen, basierend auf dem entsprechenden / 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.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...