안드로이드 개발 팁
android 강제 키 이벤트 발생
안드로이
2012. 6. 1. 16:34
안드로이드에서 강제로 키 이벤트를 발생 시키는 방법이다.
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(); // 롱클릭 이벤트 발생