마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

하드웨어키.. 검색해도 안 나오네요ㅠㅠ

0 추천

안녕하세요.

 
검색을 해봤는데 도저히 나오질 않아서 이렇게
질문을 올리게 됐어요;
 
하드웨어키를 '누르게' 하는 부분을 구현하려고 하는데
관련 내용이 없네요...
 
이벤트에 대한건 많은데,
'키를 누르도록' 하는 소스는 보이지를 않네요ㅠ;
 
전원이나, 메뉴, 홈, 뒤로가기, 볼륨 업 다운 등
이런 키를 누르도록 하는 소스는 없을까요?
adb (830 포인트) 님이 2013년 7월 2일 질문

2개의 답변

0 추천
 
채택된 답변
InputManager.injectInputEvent() 를 사용하면 가능하나 hide되어 있는 메소드이기 때문에 일반적인 앱에서는 사용 불가능 합니다.
 
Home / VolumeKey 를 직접 인젝션 하는 방법 말고 동일한 동작을 하게 하면 될 것으로 생각되는데요.
어차피 Home키가 눌렸을 때는 WindowManagerService에서 Home app을 실행시켜 주는 동작을 하는 거니 아래와 같은 방법으로
home app을 실행하면 될것 이고
startActivity(new Intent().setAction("android.intent.action.MAIN").addCategory("android.intent.category.HOME"));
 
Volume Down/Up키는 AudioService에서 볼륨을 변경하고 VolumePanel을 띄워주는 동작을 하니
AudioManager.setStreamVolume(AudioManager.STREAM_RING, 5, AudioManager.FLAG_SHOW_UI); 와 같은 방식으로
볼륨 조절 및 VolumePanel을 보여주게 하면 될 것으로 생각됩니다.
innerbe (460 포인트) 님이 2013년 7월 2일 답변
adb님이 2013년 12월 12일 채택됨
답변 감사해요~
InputManager.injectInputEvent() 라는게 있군요..
(검색해봤는데 확실히 보편적이지 않은 메소드 인가 보군요..)

구현하려는게 홈 이동이나, 볼륨 조절은 아니라서 아무래도
사용하긴 좀 힘들겠군요...

홈 이동이나 볼륨 조절이 필요할 때 말씀해주신 메소드를
이용하면 참 좋겠네요!

소중한 답변 정말 감사드려요~!~!
0 추천
스크린을 터치한다 이벤트가 발생한다

누르도록하는 함수를 조건에 맞게 구현후에 이벤트 함수를 넣으면 될꺼 같네요
bangbang (8,820 포인트) 님이 2013년 7월 2일 답변
네 그 '누르도록' 하는 함수를 어떻게 구현 하나요..
...