如何使用ADB在安卓副屏上执行点击操作?
ADB副屏执行点击操作的方法
目前有几种可行的方法在副屏(display 1)执行ADB点击操作,不同方法适配的安卓版本和设备略有差异:
方法一:使用input命令的--display参数
部分Android 10及以上版本的input工具支持指定显示设备,直接执行以下命令即可:
adb shell input --display 1 tap x y
替换x和y为副屏上的目标像素坐标。如果执行报错,说明你的设备或安卓版本不支持该参数,换用其他方法。
方法二:通过sendevent命令操作指定输入设备
sendevent可以直接向指定的输入设备节点发送触摸事件,步骤如下:
- 先列出所有输入设备,找到副屏对应的触摸设备节点:
adb shell getevent -l
执行后,观察输出里包含ABS_MT_POSITION_X、ABS_MT_POSITION_Y的设备(通常路径为/dev/input/eventX,X是数字),这就是副屏的触摸输入设备。
2. 发送触摸事件(替换/dev/input/eventX、x_value、y_value为实际值):
# 按下触摸点 adb shell sendevent /dev/input/eventX 3 57 0 adb shell sendevent /dev/input/eventX 3 53 x_value adb shell sendevent /dev/input/eventX 3 54 y_value adb shell sendevent /dev/input/eventX 0 0 0 # 松开触摸点 adb shell sendevent /dev/input/eventX 3 57 -1 adb shell sendevent /dev/input/eventX 0 0 0
注意:x_value和y_value是触摸设备的原始坐标值,不是屏幕像素坐标。可以先在副屏手动点击一次,用getevent捕捉输出,从中提取对应的坐标数值。
方法三:借助UI Automator
通过UI Automator脚本指定目标显示设备执行点击,步骤如下:
- 编写简单的UI Automator脚本,核心逻辑为:
import android.support.test.uiautomator.UiDevice; import android.support.test.uiautomator.UiObjectNotFoundException; public class TapOnSecondaryDisplay { public static void main(String[] args) throws UiObjectNotFoundException { UiDevice device = UiDevice.getInstance(); device.setDisplayId(1); device.click(x, y); // 替换x、y为副屏像素坐标 } }
- 将脚本打包成jar文件,推送到设备后执行:
adb push your_script.jar /data/local/tmp/ adb shell uiautomator runtest /data/local/tmp/your_script.jar -c TapOnSecondaryDisplay
内容的提问来源于stack exchange,提问作者Nightrain
相关产品推荐
相关产品推荐

