2012-05-30 4 views
1

stackoverflow의 답변에서 홈 버튼을 재정의 할 수 있다는 사실을 발견했습니다. 그러나 안드로이드 마켓에서 동영상을 재생하는 동안 모든 버튼을 잠글 수있는 "Mxplayer"라는 애플리케이션을 발견했습니다. 그들이 어떻게하고 있니? android의 홈 버튼을 재정의 할 수 있습니까?안드로이드에서 홈 버튼 클릭을 잡는 방법?

답변

12

이 솔루션은, 2.3 개까지

재정 당신의 활동에 아래의 방법

@Override 
public void onAttachedToWindow() { 
    super.onAttachedToWindow(); 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);   
} 

그리고 지금과 같이 키 이벤트를 처리를 작동

@Override 

public boolean onKeyDown(int keyCode, KeyEvent event) { 

    if(keyCode == KeyEvent.KEYCODE_HOME) 
    { 
    Log.i("Home Button","Clicked"); 
    } 
    if(keyCode==KeyEvent.KEYCODE_BACK) 
    { 

     finish(); 
    } 
return false; 

};

+0

그러나 홈 버튼의 기본 동작을 취소합니다. 'onKeyDown'에서'return false' 대신'return super (keyCode, event)'를 사용하더라도 말이죠. – Ixx

+0

추적 관련 기능을 수행하기 위해 집 버튼을 누르기를 원합니다. 그러나 사용자에게 미치는 영향은 동일해야합니다. – Ixx

+0

그런 다음 onKeyDown을 재정의하지 않고 시도하십시오. onAttachedWindow()에서 물건을 수행하고 TI가 작동하는지 확인하십시오 –

-1

가능합니다. 다음 코드를 사용하여

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_HOME)) { 
     //do nothing 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+2

이것은 작동하지 않습니다. – user1323210

관련 문제