본문 바로가기
프로그래밍/Android-Java

[ANDROID] onKeyDown KeyEvent 변경

by 채연2 2021. 1. 15.

작업을 하다가 화면을 90도 회전해서 처리해야하는 작업들이 생겼다.

리모콘에서 상하좌우 key event도 90도 회전시킨 evnet로 처리해야 하는데 방법을 몰라 몇시간을 헤맸다.

public boolean onKeyDown(final int keyCode, final KeyEvent event) 에서 다음과 같이 처리를 해줬다.

if(keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
	new Thread(new Runnable() {
		@Override
		public void run() {
			try {
				inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_UP);
			} catch (Exception e) {}
		}
	}).start();
    
	return true;
}

if(keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
	new Thread(new Runnable() {
		@Override
		public void run() {
			try {
				inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
			} catch (Exception e) {}
		}
	}).start();
    
	return true;
}

if(keyCode == KeyEvent.KEYCODE_DPAD_UP) {
	new Thread(new Runnable() {
		@Override
		public void run() {
			try {
				inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_LEFT);
			} catch (Exception e) {}
		}
	}).start();

	return true;
}

if(keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
	new Thread(new Runnable() {
		@Override
		public void run() {
			try {
				inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_RIGHT);
			} catch (Exception e) {}
		}
	}).start();

	return true;
}

 

private Instrumentation inst;
inst = new Instrumentation();
320x100

댓글