Android 利用adb命令 使App自动点击屏幕指定位置
16lz
2021-01-23
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 自定义组件随着手指自动画圆
- android 坐标布局 AbsoluteLayout
- Android中view的简单应用---随手指移动的小球
- Android 屏幕(View)坐标系统
- Android BackgroundViewPager:类似桌面背景壁纸随手指滑动
- 2011.07.20——— android 获得当前view在屏幕的坐标
- Android 根据坐标获取地址
- android手指缩放效果