2016-08-01 7 views
1

Ich verwende den Befehl adb shell su -- getevent -lt /dev/input/event5 > Test.txt, um das Berührungsereignis zu protokollieren. Es funktioniert, wenn ich den Bildschirm berühre, d. H. Es schreibt alle Aktionen (Taste gedrückt, Taste bewegen und Taste mit den Koordinaten hoch).Das Schlüsselereignis protokollieren, wenn der Adb-Eingang verwendet wird

Aber, wenn ich den Befehl adb shell input tap x y, um die Berührung zu simulieren, auch wenn das Gerät das Ereignis erhalten (zum Beispiel die App geöffnet ist), aber in der Protokolldatei, gibt es keine Protokollzeilen über diese tap.

Wie kann ich die Simulation der Schlüsselereignis berühren mit adb?

Antwort

2

Der Grund für Sie nicht Ihre input tap Ereignisse in dem getevent ausgegeben werden, um zu sehen ist, dass sendevent und getevent Arbeit mit Linux-Kernel Eingabeereignissen und input Befehl, um die Ereignisse direkt in die Android-Eingangsereigniswarteschlange injiziert.

This (old but still useful) article enthält einige schöne Diagramme, die die Ereignisübertragung in Android darstellen.

Leider gibt es keine einfache (ready to use) Möglichkeit, das zu tun, wonach Sie gefragt haben. Das nächste, woran ich denken könnte, ist die Verwendung des Befehls dumpsys input - es zeigt die letzten 10 Eingabeereignisse (einschließlich derer, die durch den Befehl input eingegeben wurden) im Abschnitt RecentQueue:.

+0

Ah danke für Ihre Antwort. Ich habe 'adb shell dumpsys input' versucht und es funktioniert. Es bekommt das Protokoll wie ich will. – GAVD

Verwandte Themen