안드로이드 개발 질문/답변
(글 수 45,052)
강제로 이벤트를 발생시켜 다른 어플들을 조종(매크로 같은 느낌?)하도록 하고 싶은데 경험이 없어 가닥이 안잡히네요
예를 들어 브라우저를 띄우고 URL을 입력(바로 입력되는게 아니라 키보드가 화면에 뜨고 천천히 터치되는것처럼 되면서
해당 사이트로 이동되도록 하는식으로 하고싶습니다. 예제 소스나 관련된 문서, 사이트 있으면 추천좀 해주세요~
2010.03.05 13:12:15
다른곳에서 검색결과
KeyEvent event = new KeyEvent(0, KeyEvent.KEYCODE_BACK); // 0:Action_down, 4:back버튼의 키코드
onKeyDown(KeyEvent.KEYCODE_BACK, event);
다음과같이 하면 된다고 하던데 아무런 동작도 안하네요 어플리케이션이 시작되자마자 위 코드를 넣어 끝나게 해보려는 시도였으나
아무런 반응이 없네요
2010.03.05 16:49:37
http://android-developers.blogspot.com/search/label/Android%202.0 내용을 참고해 보세요.
2.0 버전부터 Back 키 이벤트가 기존 KeyEvent.ACTION_DOWN 에서 발생했는데 KeyEvent.ACTION_UP 때 발생하는 걸로 변경 되었습니다~~ 따라서...
KeyEvent event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK); 으로 코드를 수정하시면 작동할 듯 합니다.
2010.03.06 19:54:02
음 Back 키가 눌리는 경우는 onBackPressed() 를 호출 하시면 됩니다.
원하시는게 특정 키 이벤트를 특정 View 로 보내는 거라면... 해당 view 에 대해서 직접 onKeyDown 을 호출 하시거나... (예를 들어) editbox.onKeyDown... 아니면 KeyEvent 의 dispatch API 를 이용해서 특정 View 에 특정 KeyEvent를 보내 실 수 있습니다. 예를 들어... event.dispatch(editbox, null, null)...
Activity 자체의 onKeyDown 같은 경우.. 현재 focus 된 view 가 없어서 Key Event 를 처리할 view 가 없을 경우에만 호출 된다고 하네요.
(api 문서 참고...)
Called when a key was pressed down and not handled by any of the views inside of
the activity. So, for example, key presses while the cursor is inside a TextView
will not trigger the event (unless it is a navigation to another object) because
TextView handles its own key presses.