项目是无触摸操作的,所有需要模拟点击事件点击view
Instrumentation实现模拟键盘鼠标事件(经验证可以)
package com.kc.kchelmetupdateservice;
import android.app.Instrumentation;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class OtouchActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_otouch);
findViewById(R.id.btn_test).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(OtouchActivity.this, "点击了", Toast.LENGTH_SHORT).show();
}
});
findViewById(R.id.btn_0).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
OtouchActivity.this.onClick();
}
});
}
private void onClick() {
new Thread(new Runnable() {
@Override
public void run() {
// 可以不用在 Activity 中增加任何处理,各 Activity 都可以响应
Instrumentation inst = new Instrumentation();
inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
MotionEvent.ACTION_DOWN, 500, 500, 0));
inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
MotionEvent.ACTION_UP, 500, 500, 0));
}
}).start();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.e("onTouchEvent", event.getX() + "");
Log.e("onTouchEvent", event.getY() + "");
return super.onTouchEvent(event);
}
}