public class AutoClickActivity extends AppCompatActivity implements View.OnClickListener {
private AppCompatTextView mEtXPos, mEtYPos;
private AppCompatButton mBtnStart;
private float mXPos, mYPos;
private boolean mIsRunning;
// 制定adb命令的lei
private ProcessBuilder mBuilder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auto_click);
mEtXPos = findViewById(R.id.mEtXPos);
mEtYPos = findViewById(R.id.mEtYPos);
mBtnStart = findViewById(R.id.mBtnStart);
mBtnStart.setOnClickListener(this);
Timer mTimer = new Timer();
mBuilder = new ProcessBuilder();
// 周期执行点击(200ms)
mTimer.schedule(new TimerTask() {
@Override
public void run() {
if (mIsRunning) {
String[] order = {"input", "tap", "" + mXPos, "" + mYPos};
try {
mBuilder.command(order).start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}, 0, 200);
}
@Override
// 监听触摸
public boolean onTouchEvent(MotionEvent event) {
LogUtils.iTag("RedWolf", "onTouchEvent: ", event.getX(), event.getY());
switch (event.getAction()) {
// 手指移动 获取手指所在XY坐标 塞入EditText 同时记录
case MotionEvent.ACTION_MOVE:
mXPos = event.getX();
mYPos = event.getY();
mEtXPos.setText(String.format("%s", mXPos));
mEtYPos.setText(String.format("%s", mYPos));
break;
// 手指按下 获取手指所在XY坐标 塞入EditText 同时记录
case MotionEvent.ACTION_DOWN:
mXPos = event.getX();
mYPos = event.getY();
mEtXPos.setText(String.format("%s", mXPos));
mEtYPos.setText(String.format("%s", mYPos));
break;
}
return super.onTouchEvent(event);
}
@Override
public void onClick(View v) {
if (mIsRunning) {
mBtnStart.setText("开始点击");
} else {
mBtnStart.setText("结束点击");
}
mIsRunning = !mIsRunning;
}
}
Android 利用adb命令 使App自动点击屏幕指定位置
最新推荐文章于 2024-03-19 11:42:48 发布