Имитация касания, удержания, перемещения в Android отладочный мост

Вместо того, чтобы использовать drag или же swipe Команда в мосту отладки Android или AndroidViewClient, как это:

device.drag((600,800),(600,1200), 1000) 
device.shell('input touchscreen swipe 600 800 600 1200 1000') 

Есть ли способ симулировать что-то вроде следующего?

1. press down on some coordinates (eventType=DOWN)
2. sleep 2 seconds (i.e. keep holding there)
3. move to some other coordinates
2. sleep 2 seconds (i.e. keep holding there)
5. release (eventType=UP)

Обычно вы касаетесь, удерживаете там несколько секунд, перетаскиваете и удерживаете там несколько секунд, затем отпускаете пэд.

1 ответ

Если вы посмотрите на AdbClient.longPress() вы увидите, как посылается событие длительного нажатия для некоторых клавиш:

    if name in KEY_MAP:
        self.shell('sendevent %s 1 %d 1' % (dev, KEY_MAP[name]))
        self.shell('sendevent %s 0 0 0' % dev)
        time.sleep(duration)
        self.shell('sendevent %s 1 %d 0' % (dev, KEY_MAP[name]))
        self.shell('sendevent %s 0 0 0' % dev)

Вы можете сделать что-то подобное для вашего случая. Чтобы получить представление о том, что вы должны написать, выполните тот же набор событий, который вы упомянули, и проанализируйте их с помощью getevent.

Другие вопросы по тегам