1.模拟长按
private void sendLongTouch(){
new Thread(new Runnable() {
@Override
public void run() {
Instrumentation iso=new Instrumentation();
float x = imgMouse.getX();
float y = imgMouse.getY();
iso.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),MotionEvent.ACTION_DOWN, x, y, 0));
iso.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),MotionEvent.ACTION_MOVE, x, y, 0));
iso.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis()+1000,MotionEvent.ACTION_UP, x, y, 0));
}
}).start();
}
2.模拟点击
private void sendEvent(final float x,final float y){
new Thread(new Runnable() {
@Override
public void run() {
try {
Instrumentation inst = new Instrumentation();
inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, x, y, 0));
inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, x, y, 0));
}catch (Exception ex){
ex.printStackTrace();
}
}
}).start();
inputBox.setSelectAllOnFocus(true);
if(inputBox.hasFocus()){
inputBox.selectAll();
}
}
3.模拟滑动
private void sendHover(final float x,final float y,final int isup){
new Thread(new Runnable() {
@Override
public void run() {
//Log.e("nodes","sendhover");
Instrumentation iso=new Instrumentation();
iso.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),MotionEvent.ACTION_DOWN, x, y, 0));
iso.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),MotionEvent.ACTION_MOVE, x, y, 0));
iso.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis()+20,MotionEvent.ACTION_MOVE, x, y-30*isup, 0));
iso.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis()+40,MotionEvent.ACTION_MOVE, x, y-60*isup, 0));
iso.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis()+60,MotionEvent.ACTION_MOVE, x, y-90*isup, 0));
iso.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis()+60,MotionEvent.ACTION_UP, x, y-90*isup, 0));
}
}).start();
}
只在本身应用有效果,如果需要控制其他应用界面,需要添加权限