안드로이드 특수키 제어하기
안드로이드 프로그래밍에서 특수키 제어하는 방법입니다.
특수키란 키보드로 입력하는 키 외에 뒤로가기, 홈버튼, 볼륨버튼.. 등을 말합니다.
먼저 실행 될 activity에서 우클릭 - Generate를 눌러줍니다.
생성자, getter, setter...등 목록이 많이 있습니다.
이 중에 Override Methods를 선택합니다.
OnKeyDown이라고 검색해봅시다.(창이 뜬 상태에서 그냥 치면 검색됩니다.)
없는 경우 이미 메소드를 생성한 경우입니다.
OK버튼을 누르면 아래와 같은 코드가 생깁니다.
@Override라는 문구가 싫으신 분은 Insert @Override 체크버튼을 해제하시면 됩니다.
자 이제 이 메소드에서 특수키 이벤트를 구현하시면 됩니다.
다음은 특수키 목록입니다.
KEYCODE_BACK : 뒤로가기 버튼
KEYCODE_VOLUME_DOWN : 볼륨 ↓ 버튼
KEYCODE_VOLUME_UP : 볼륨 ↑ 버튼
KEYCODE_HOME : 홈 버튼
이외에 키보드에서 입력할 수 있는 모든 키는 코드로 정의되어있습니다.
이번시간에는 특수키 제어만 해보겠습니다.
다음과 같이 코드를 작성합니다.
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch(keyCode){
case KeyEvent.KEYCODE_BACK :
// 여기에 뒤로가기 버튼을 눌렀을 때 행동 입력
break;
case KeyEvent.KEYCODE_VOLUME_DOWN :
// 여기에 볼륨 ↓ 버튼을 눌렀을 때 행동 입력
break;
case KeyEvent.KEYCODE_VOLUME_UP :
// 여기에 볼륨 ↑ 버튼을 눌렀을 때 행동 입력
break;
case KeyEvent.KEYCODE_HOME :
// 여기에 홈 버튼을 눌렀을 때 행동 입력
break;
}
return super.onKeyDown(keyCode, event);
}
필요한 키 코드만 복사해서 붙여넣어 사용하면됩니다.
단순히 키 입력을 막고싶다 하시는 분은
case KeyEvent.KEYCODE_BACK :
return;
라고 입력하시면 됩니다.
* 수정(8/24)
HOME키 이벤트는 위 코드로 제어할 시 제대로 작동이 안됩니다.
따라서 다음과 같이 처리합니다.
우클릭 - Generate - Override Methods 선택 후 onUserLeaveHint 검색하고 생성합니다.
휴대폰의 홈 키 또는 작업탭 키를 눌렀을 때 작동하는 것을 확인했습니다.
저는 Log로 작성했지만 홈 키 또는 작업탭 키를 눌렀을 때 작동 할 코드를 Log부분에 작성하시면 됩니다.
* 참고 : KeyEvent는 해당 코드를 입력한 Activity(화면)에서만 발생합니다.
* 참고 (더 많은 키 코드를 확인하고싶은 분은 ↓ 아래 링크로 가서 확인하세요)
https://developer.android.com/reference/android/view/KeyEvent
오타 및 질문사항은 댓글로 달아주세요!!
'Android' 카테고리의 다른 글
안드로이드 이미지 뷰 여백 없애기 (0) | 2018.08.28 |
---|---|
안드로이드 카메라 줌 기능 구현 (1) | 2018.08.27 |
[안드로이드] 비트맵 이진화 처리 (1) | 2018.08.25 |
[안드로이드] 실시간 SurfaceView 화면 캡쳐하기 (1) | 2018.08.24 |
[Android] 안드로이드 내부 저장소 텍스트 파일 읽기 및 쓰기 (2) | 2018.08.21 |
[Android] 안드로이드 SurfaceView 카메라 연동하기 (3) | 2018.08.20 |
안드로이드 EditText 사용법 정리 (0) | 2018.08.20 |
[Android] 안드로이드 키보드 입력 창 올리기/ 내리기 (0) | 2018.08.20 |