[Android] Key Event 발생 시키기.
adb shell 에서 keyevent 를 발생시키는 방법이다.
Test app 을 만들어서 해봤는데...잘 된다...
adb shell에서는 아래와 같이 사용하면 된다.
# input keyevent 4
input keyevent 4
여기서 4는 key code 값이며, keyevent.java 에 보면 나와 있다.
test app 에서는 아래와 같이 사용하면 된다.
이는 input.java 소스에 나와 있다.
안드로이드는 왠만한 코드는 모두 찾아보면 나오는것 같다.
int eventCode = Integer.parseInt(event);
long now = SystemClock.uptimeMillis();
Log.i("SendKeyEvent", event);
try {
KeyEvent down = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, eventCode, 0);
KeyEvent up = new KeyEvent(now, now, KeyEvent.ACTION_UP, eventCode, 0);
(IWindowManager.Stub
.asInterface(ServiceManager.getService("window")))
.injectKeyEvent(down, true);
(IWindowManager.Stub
.asInterface(ServiceManager.getService("window")))
.injectKeyEvent(up, true);
} catch (RemoteException e) {
Log.i("Input", "DeadOjbectException");
}
Android KeyEvent 강제 발생 ( Instrumentation keyCode )