PC のマウスを制御する Android アプリを作成しています。アプリケーションには 4 つのボタン (左、右、上、下) があります。それらをクリックすると、アプリケーションは整数を pc に送信し、PC で実行されている Java アプリケーションはそれを受け取り、カーソルを移動します。
今私がやりたいのは、ユーザーがボタンを長時間押したときに、ユーザーがボタンを離すまでアプリケーションが番号を PC に連続して送信することだけです。誰かがこれを行うのを手伝ってください。
OnTouchListenerを使用してMotionEvent.ACTION_DOWNをリッスンし、それが発生すると、たとえば 0.5 秒ごとに適切な信号をコンピューターに送信し始めます。の後にこれをやめてください。MotionEvent.ACTION_UP
編集:
public class MainActivity extends Activity implements OnTouchListener {
private TextView TV;
private Thread move_curser;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TV = (TextView) findViewById(R.id.TV1);
TV.setOnTouchListener(this);
}
public boolean onTouch(View v, MotionEvent event) {
boolean isPressed = event.getAction() == MotionEvent.ACTION_DOWN;
boolean isReleased = event.getAction() == MotionEvent.ACTION_UP;
if(isPressed) {
move_curser = new Thread(new move_curser());
move_curser.start();
your_methode();
return true;
} else if(isReleased){
move_curser.interrupt();
return true;
}
return false;
}
public class move_curser implements Runnable {
public void run() {
int time = 500;
try {
Thread.sleep(time);
} catch (InterruptedException e) {
interrupt();
}
while(true){
your_methode();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
interrupt();
}
}
}
}
}