나는 현재 안드로이드이고 서버가 PC와 블루투스의 자바 데스크톱 응용 프로그램 인 클라이언트 - 서버 시스템과 함께 게임 패드/게임 컨트롤러 기능을 가진 안드로이드 응용 프로그램을 작업하고 있습니다. 연결. 지금까지, 내 응용 프로그램은 단지 하나의 손가락 (보류 또는 클릭)와 함께 작동하고 지금은 이벤트 홀드 버튼에서 2 손가락으로 멀티 터치와 함께 일하고 있어요 + 버튼을 클릭 B 또는 버튼을 누른 상태로 버튼 + 보류 B.하지만, 안드로이드에서 어떻게 할 지에 대한 아이디어를 얻고, mCommandService (BluetoothCommandService.valueOfButon)로 java에 이벤트를 보내고, 버튼 A가 보류 상태 일 때 자바 스크립트를 읽고 robot.keyPress로 값 표현을 실행한다.자바에서 안드로이드 멀티 태스킹에 대응하는 방법
나는이 블로그 http://luugiathuy.com/2011/02/android-java-bluetooth/에서 예제를 구현하여 android와 java 사이의 블루투스 연결을 구현합니다. 그리고 안드로이드
public boolean onTouch(View v, MotionEvent event) {
switch(v.getId()){
case R.id.tombolL1:
cmd = BluetoothCommandService.aksi_l1;
break;
case R.id.tombolL2:
cmd = BluetoothCommandService.aksi_l2;
break;
case R.id.tombolR1:
cmd = BluetoothCommandService.aksi_r1;
break;
case R.id.tombolR2:
cmd = BluetoothCommandService.aksi_r2;
break;
case R.id.tombolAtas:
cmd = BluetoothCommandService.arah_atas;
break;
case R.id.tombolBawah:
cmd = BluetoothCommandService.arah_bawah;
break;
case R.id.tombolKiri:
cmd = BluetoothCommandService.arah_kiri;
break;
case R.id.tombolKanan:
cmd = BluetoothCommandService.arah_kanan;
break;
case R.id.tombolSegitiga:
cmd = BluetoothCommandService.aksi_segitiga;
break;
case R.id.tombolBulat:
cmd = BluetoothCommandService.aksi_bulat;
break;
case R.id.tombolSilang:
cmd = BluetoothCommandService.aksi_silang;
break;
case R.id.tombolKotak:
cmd = BluetoothCommandService.aksi_kotak;
break;
}
switch(action){
case MotionEvent.ACTION_DOWN:
handler1.removeCallbacks(mUpdateTask);
handler1.postAtTime(mUpdateTask, 200);
break;
case MotionEvent.ACTION_UP:
handler1.removeCallbacks(mUpdateTask);
break;
}
return false;
}
private Runnable mUpdateTask = new Runnable() {
@Override
public void run() {
mCommandService.write(cmd);
handler1.postAtTime(this, SystemClock.uptimeMillis() + 100);
//handler1.postAtTime(this, 200);
}
};
에서이 내 onTouch 방법과
private void processCommand(int command) {
try {
Robot robot = new Robot();
int key = 0;
switch(command){
case arah_atas:
key = KeyEvent.VK_UP;
break;
case arah_bawah:
key = KeyEvent.VK_DOWN;
break;
case arah_kiri:
key = KeyEvent.VK_LEFT;
break;
case arah_kanan:
key = KeyEvent.VK_RIGHT;
break;
case aksi_segitiga:
key = KeyEvent.VK_A;
break;
case aksi_bulat:
key = KeyEvent.VK_X;
break;
case aksi_silang:
key = KeyEvent.VK_Z;
break;
case aksi_kotak:
key = KeyEvent.VK_S;
break;
case aksi_l1:
key = KeyEvent.VK_Q;
break;
case aksi_l2:
key = KeyEvent.VK_W;
break;
case aksi_r1:
key = KeyEvent.VK_R;
break;
case aksi_r2:
key = KeyEvent.VK_E;
break;
case aksi_select:
key = KeyEvent.VK_SPACE;
break;
case aksi_start:
key = KeyEvent.VK_M;
break;
}
robot.keyPress(key);
Thread.sleep(50);
robot.keyRelease(key);
} catch (Exception e) {
e.printStackTrace();
}
}
이, 내가 내가 필요로 무엇을 할 수있는 방법을 알려 주시기 바랍니다 자바에서이 processCommand 방법은?
답변 해 주셔서 감사합니다. 하지만 내 응용 프로그램에서는 사용할 수 없으며 실제로는 내가 찾던 대답이 아니라고 생각합니다. 어쩌면 나중에 다른 프로젝트에서 사용하겠습니다 :) – IoRin