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

특정Activity에서 모든 기능(홈키,취소키,전원키,상단 알림) 막기

0 추천
안녕하세요,,

개발하다가 막히는 부분이 있어 문의드립니다.

현재 Activity를 FullScreen 으로 띄웠는데요 여긴 버튼하나만 있습니다.

이 화면에선 버튼으로만 나갈수 있도록 만드는 중인데요

버튼누르기 전까진 화면이 계속 켜있으면서 다른 방해조건을 없애야 합니다.

취소키는 간단하게 막았는데 홈키, 전원키, 상단 알림을 막는게 문제입니다.

이키들은 하드웨어키라 제어할수없단 말도 있는데...혹시 알고계신분 계신가요?

여기저기 제어관련해서 소스를 붙여보아도 실행 안되고....

혹시 이를 해결하신분 계신가요? 조언좀 부탁드립니다. ㅠㅠ
익명사용자 님이 2014년 7월 15일 질문
https://github.com/shaobin0604/Android-HomeKey-Locker   여기있는 소스로 해서 홈키는 막았는데 노트3 왼쪽 롱버튼으로 하는 S-finder는 못 막았네요;;

2개의 답변

0 추천
 
채택된 답변

안녕하세요.

H/W key는 밑과 같은 형태로 system 파티션에 정의됩니다.  Rooting이 되지 않은 이상, 이미 저의된 KEY_CODE 의 이벤트를 override할 수는 없습니다. 해당 event는 kernel에서 바로 keyguard로 전해지고 여기에서 핸들됩니다.

 /system/usr/keylayout/gpio-keys.kl.

key 115   VOLUME_UP         WAKE_DROPPED
key 114   VOLUME_DOWN       WAKE_DROPPED
key 172   HOME              WAKE_DROPPED
key 528   FOCUS             WAKE_DROPPED
key 766   CAMERA            WAKE_DROPPED
key 116  POWER             WAKE_DROPPED
key 139   MENU
key 158   BACK
key 252   ACTIVE
key 254   APP_SWITCH
 
fanoyong (1,440 포인트) 님이 2014년 7월 16일 답변
네 감사합니다. 다른방법을 모색해봐야겠네요^^
–1 추천

Activity를 extends 하셨으면

@Override
public void onBackPressed() { 
}
 
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return false;
}
 
이런식으로 메소드를 Override 해주셔서 코드에 아무것도 적지 않으면 동작이 안되서 막을 수 있습니다.
익명사용자 님이 2014년 9월 29일 답변
...