Obwohl ich keine Umgebung habe, habe ich mich mit dem Problem befasst. Es gibt verschiedene Artikel, die Sie finden können, die für manche Menschen immer zu funktionieren scheinen, für andere jedoch nicht. Ich bin zu dem Schluss gekommen, dass es Unterschiede zwischen Kombinationen von Telefon-Hardware / Android-Version / SDK-Version gibt, die es so machen, dass es keine Lösung für alle Setups gibt.
Sie müssen herausfinden, was für Sie funktioniert. Bedenken Sie, dass Sie durch ein umfangreiches Update der Software immer wieder zum Ausgangspunkt zurückkehren können.
Die einfachste Methode, die ich gefunden habe, ist die Verwendung des input tap x y
Befehls:
adb shell input tap x y
Nicht alle input
Versionen haben den tap
Parameter, aber wenn Sie ihn ohne Argumente starten, werden alle verfügbaren Parameter und die Syntax gedruckt:
shell@m0:/ $ input input usage: input ... input text <string> input keyevent <key code number or name> input [touchscreen|touchpad|touchnavigation] tap <x> <y> input [touchscreen|touchpad|touchnavigation] swipe <x1> <y1> <x2> <y2> [duration(ms)] input trackball press input trackball roll <dx> <dy>
Mit Getevent können Sie auch die Ereignisse aufzeichnen, die beim Berühren des Bildschirms auftreten. Wie von hier genommen :
Zeichnen Sie eine Reihe von Ereignissen auf
Einrichten des PCs zum Aufzeichnen von Daten in einer Datei (
/tmp/android-touch-events.log
)$ adb shell getevent | grep --line-buffered ^/ | tee /tmp/android-touch-events.log
- mach ein paar Sachen am Telefon
- Beenden Sie den ADB-Befehl auf dem PC mit
ctrl-c
Wiederholen Sie die aufgezeichneten Ereignisse
Dieser Befehl führt die Hex-Konvertierung aus
awk
$ awk '' /tmp/android-touch-events.log | xargs -l adb shell sendevent
Passen Sie auf, dass Getevent seine Parameter in Hex anzeigt, aber Eingaben nur in Dezimalzahlen akzeptiert, die das obige Skript zu korrigieren versucht.
Monkeyrunner ist ein weiteres Tool, das Sie verwenden können, wie hier gezeigt :
Vielleicht möchten Sie Monkeyrunner wie folgt verwenden :
$ monkeyrunner >>> from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice >>> device = MonkeyRunner.waitForConnection() >>> device.touch(200, 400, MonkeyDevice.DOWN_AND_UP)
Sie können auch ziehen, Aktivitäten starten usw. Schauen Sie sich die API für MonkeyDevice an .
Verweise: