You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python+ADB实现快速滑动后长按终点5秒的触控操作?

实现快速滑动后长按的ADB操作方案

问题原因

你之前用的input touchscreen swipe 540 1000 540 1700 5000命令,最后一个参数是整个滑动动作的总时长,所以会让滑动过程持续5秒,而不是滑动完成后再长按。

解决方案:拆分两步执行

要实现「快速滑动→终点长按5秒」,需要把操作拆成两个独立的ADB命令:

  1. 快速滑动:设置极短的滑动时长(比如100ms),让滑动瞬间完成
  2. 终点长按:在滑动终点执行长按操作(起点和终点坐标相同,时长设为5000ms)

Python代码示例

方法1:使用subprocess直接调用ADB命令

import subprocess
import time

# 定义坐标和参数
x1, y1 = 540, 1000
x2, y2 = 540, 1700
swipe_duration = 100  # 快速滑动的时长(毫秒)
hold_duration = 5000   # 长按时长(毫秒)

# 第一步:快速滑动
subprocess.run(["adb", "shell", f"input touchscreen swipe {x1} {y1} {x2} {y2} {swipe_duration}"])

# 可选:加极短延迟确保滑动完成(视设备反应调整)
time.sleep(0.1)

# 第二步:在终点长按
subprocess.run(["adb", "shell", f"input touchscreen swipe {x2} {y2} {x2} {y2} {hold_duration}"])

方法2:使用uiautomator2库(如果已集成)

import uiautomator2 as u2
import time

device = u2.connect()  # 连接设备

x1, y1 = 540, 1000
x2, y2 = 540, 1700
swipe_duration = 0.1  # 快速滑动时长(秒)
hold_duration = 5     # 长按时长(秒)

# 快速滑动
device.swipe(x1, y1, x2, y2, swipe_duration)

# 等待滑动完成
time.sleep(0.1)

# 在终点长按
device.long_click(x2, y2, hold_duration)

关键说明

  • 快速滑动的时长建议设为100ms以内,根据设备性能调整,确保滑动动作瞬间完成
  • 两步操作之间的短延迟是为了避免设备还没处理完滑动就开始长按,可根据实际情况增减
  • 长按操作利用了ADBswipe命令的特性:当起点和终点坐标相同时,命令会转为长按动作,时长由最后一个参数控制

内容的提问来源于stack exchange,提问作者user1611157

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 07:57:09