Я хочу программно управлять устройством Android через ADB.
Так как мне нужно прокрутить список, я попытался прокрутить с помощью такой команды:
adb shell input touchscreen swipe 935 500 789 500 1000
Это работает, нопроблема заключается в том, что в Android добавлен эффект броска / резинки.Поэтому, когда проведите пальцем, он все равно прокручивается немного дальше.Но мне нужно выбрать идеальный пиксель, чтобы этот подход не работал так, как мне нужно.Даже когда я увеличиваю длительность пролистывания до 3000 мс, она прокручивается еще на несколько пикселей.
Может быть, есть простой способ сказать, ADB / свист моего устройства, но удерживайте палец после перемещения в течение ~ 500 мс, прежде чем отпустить палецчтобы предотвратить эффект «броска»?
Я также пытался контролировать события вручную.Поэтому я запустил adb getevent
, произвел смахивание на устройстве и собрал вывод:
[...]
/dev/input/event6: 0000 0000 00000000
/dev/input/event6: 0003 0035 000000fb
/dev/input/event6: 0003 0030 0000000a
/dev/input/event6: 0000 0000 00000000
/dev/input/event6: 0003 0035 000000fa
/dev/input/event6: 0003 0030 0000000b
/dev/input/event6: 0000 0000 00000000
/dev/input/event6: 0003 0036 000001b6
/dev/input/event6: 0003 0030 0000000c
/dev/input/event6: 0000 0000 00000000
/dev/input/event6: 0003 0035 000000f9
/dev/input/event6: 0003 0030 0000000d
/dev/input/event6: 0000 0000 00000000
/dev/input/event6: 0003 0035 000000f8
/dev/input/event6: 0003 0030 0000000e
/dev/input/event6: 0000 0000 00000000
/dev/input/event6: 0003 0035 000000f7
/dev/input/event6: 0003 0030 0000000f
/dev/input/event6: 0000 0000 00000000
/dev/input/event6: 0003 0030 00000000
/dev/input/event6: 0003 0039 ffffffff
/dev/input/event6: 0000 0000 00000000
/dev/input/event6: 0003 002f 0000000c
/dev/input/event6: 0003 0039 0000000c
/dev/input/event6: 0003 0035 000000f7
/dev/input/event6: 0003 0036 000001b6
/dev/input/event6: 0000 0000 00000000
Я предполагаю, что это должно сказать мне, что мое событие /dev/input/event6
, и я предполагаю, что коды событий, которые мне нужны0035
, 0036
и 0039
.
Поэтому я немного попробовал и придумал такой подход:
adb shell sendevent /dev/input/event6 3 53 935
adb shell sendevent /dev/input/event6 0 0 0
adb shell sendevent /dev/input/event6 3 54 500
adb shell sendevent /dev/input/event6 0 0 0
adb shell sendevent /dev/input/event6 3 57 1
adb shell sendevent /dev/input/event6 0 0 0
adb shell sendevent /dev/input/event6 3 53 789
adb shell sendevent /dev/input/event6 0 0 0
adb shell sendevent /dev/input/event6 3 54 500
adb shell sendevent /dev/input/event6 0 0 0
adb shell sendevent /dev/input/event6 3 57 0
adb shell sendevent /dev/input/event6 0 0 0
Это также делается аналогично здесь .Но это не сработало, на устройстве ничего не изменилось.Поскольку я не знаю, что делать дальше, или если мой подход верен вообще, я хотел бы спросить вас, можете ли вы сказать мне, где мои ошибки.
Спасибо!