안드로이드에서 강제로 키 이벤트를 발생 시키는 방법이다.
new Instrumentation().sendKeySync(event)를 이용하면 된다.아래 소스는 처음 로딩시 하드웨어 메뉴버튼을 한번 눌러서 나타나게하고, 2초후에 다시 하드웨어 메뉴 버튼을 눌러서 메뉴를 사라지게 하는 소스이다.
즉 사용자가 하드웨어 메뉴버튼을 누른것처럼 동작하는 것이다.
onCreate()에서..
// 메뉴 버튼 강제 실행하여 보이기 openMenu();
Activity 내에서..
Handler handler_menu = new Handler() { @Override public void handleMessage(Message msg) { closeMenu(); } }; // 메뉴 버튼을 눌럿다가 띤것처럼(클릭) 처리하고, 수행이 끝나면 closeMenu() 요청 public void openMenu(){ new Thread(new Runnable() { public void run() { KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MENU); new Instrumentation().sendKeySync(event); KeyEvent event2 = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MENU); new Instrumentation().sendKeySync(event2); handler_menu.sendEmptyMessage(0); } }).start(); } // 메뉴 버튼을 눌럿다가 띤것처럼(클릭) 처리 public void closeMenu2(){ new Thread(new Runnable() { public void run() { KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MENU); new Instrumentation().sendKeySync(event); KeyEvent event2 = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MENU); new Instrumentation().sendKeySync(event2); } }).start(); } // 2초후에 다시 메뉴 버튼을 강제 실행하여 닫기 public void closeMenu(){ new Handler().postDelayed(new Runnable() {// 2 초 후에 실행 @Override public void run() { // 실행할 동작 코딩 closeMenu2(); } }, 2000); }
<< 참고 >> android 버튼 클릭 이벤트 강제로 발생시키기
button.performClick();
Button bt_parse = (Button)findViewById(R.id.bt_parse); ... bt_parse.performClick(); // 클릭 이벤트 발생 bt_parse.performLongClick(); // 롱클릭 이벤트 발생
'안드로이드 개발 팁' 카테고리의 다른 글
android Preference Color Change (0) | 2012.06.11 |
---|---|
android 환경설정(Preference) (0) | 2012.06.01 |
자바 날짜 시간 계산 예제 코드 모음 (0) | 2012.05.30 |
android HttpClient 예제 get, post 방식 (0) | 2012.05.29 |
android twitter 연동 1 ( 앱등록및 라이브러리 다운로드) (1) | 2012.05.24 |