Как поймать нажатие кнопки «Домой» в Android?

Из ответов в stackoverflow я обнаружил, что кнопку Home можно переопределить? Но я нашел приложение на андроид маркете под названием "Mxplayer" где вы можете заблокировать все кнопки во время воспроизведения видео. Как они это делают? Можем ли мы переопределить кнопку домой в Android?

Ответы на вопрос(2)

Решение Вопроса

Переопределите метод ниже в вашей деятельности,

@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;

};

 24 окт. 2012 г., 16:40
Я получаю следующую ошибку даже с & quot; DISABLE_KEYGUARD & quot; набор разрешений. 4.1 исправил эту брешь в безопасности? android.view.WindowManager $ BadTokenException: невозможно добавить окно [email protected] - в этом типе окна отказано в разрешении
 13 сент. 2012 г., 13:06
Но это отменяет поведение кнопки home по умолчанию. Даже если я используюreturn super(keyCode, event) вместоreturn false вonKeyDown.
 13 сент. 2012 г., 13:07
Я хочу поймать нажатие кнопки «Домой», чтобы сделать что-то связанное с отслеживанием, но эффект для пользователя должен быть таким же.
 13 сент. 2012 г., 13:11
затем попробуйте без переопределения onKeyDown. Сделайте ваши вещи в onAttachedWindow () и посмотрите, работает ли ti
 28 окт. 2013 г., 08:17
@ Грэм, я получаю то же самое для версий ICS и желейных бобов, у тебя есть способ решить эту проблему?

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_HOME)) {
        //do nothing
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
 user132321030 мая 2012 г., 07:17
Это не работает.

Ваш ответ на вопрос