思路:
1. 在电脑上获取到手机屏幕(利用TCDisplaySink这个投屏软件)
2.创建一个和手机屏幕大小差不多的窗口,将其设置为透明并覆盖在手机屏幕上。
3. 在窗口中利用鼠标点击起点和终点获取两点之间的距离,根据距离来决定按压屏幕的时间。
4. 发送adb命令完成对屏幕的点击操作。
adb 的屏幕滑动命令:
adb shell input touchscreen swipe 366 351 366 351 2000
其中 adb shell input touchscreen swipe 366 351(这个坐标代表滑动屏幕的起点) 366 351(这个坐标代表滑动屏幕的终点) 2000(这个代表触摸屏幕的时间,2000代表2000ms)
当滑动的起点和终点坐标一样时,这个命令就变成了点击操作。
准备工作:
1. 1根数据线,用来连接手机和电脑
2. 打开手机的usb调试模式。
3. 手机安装TCDisplaySink
4. 电脑安装TCDisplaySink
5. 手机和电脑在同一局域网下,可以手机开热点。
以上步骤完成后手机屏幕就可以在电脑上显示了
2. 下载adb文件和安装adb驱动。
代码如下:
package com.baidu.Jump.util;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class JumpOneJump extends JFrame{
double xSrc, ySrc, xDest, yDest;
String adbSrc = "D:\\百度云下载\\跳一跳素材\\ADB\\";//这个路径是你下载的adb文件的路径
boolean flag = false;
JumpOneJump(){
this.setBounds(200, 100, 425, 750);//设置位置和屏幕大小
this.setAlwaysOnTop(true);
this.setUndecorated(true);//去除边框
this.setVisible(true);
this.setOpacity(0.4f);//设置窗口透明度,只有去除了边框才能设置透明度
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel jl = new JLabel();
this.add(jl);
this.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON1){//判断是不是鼠标左键,右键是BUTTON3
if(!flag){
xSrc = e.getX();
ySrc = e.getY();
flag = true;
}else {
xDest = e.getX();
yDest = e.getY();
flag = false;
double _x = Math.abs(xSrc - xDest);
double _y = Math.abs(ySrc - yDest);
double dis = Math.sqrt(_x*_x + _y*_y);
System.out.println("x = "+(xSrc - xDest));
System.out.println("y = "+(ySrc - yDest));
System.out.println("长度: "+dis);
//cmd命令用来执行adb命令,这个命令用来点击屏幕
String cmd = adbSrc + "adb shell input touchscreen swipe 366 351 366 351 "+(int)(dis*3.5);
try {
Runtime.getRuntime().exec(cmd);//执行cmd命令
}catch(IOException e1) {
e1.printStackTrace();
}
}
}
}
});
}
public static void main(String[] args) {
new JumpOneJump();
}
}