Как перехватывать кнопки на Android 4.+ ? Конкретнее мне нужно перехватить кнопку HOME.
При использовании этого:
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
this.getWindow().
setType(WindowManager.LayoutParams.TYPE_GUARD);
}
Программа вылетает. Не знаю почему!
Перехват кнопок
Re: Перехват кнопок
значение константы для кнопки Home - 0x00000003, она доступна на очень низком уровне, фреймворк никогда не посылает приложению это событие, да и нафига она вам нужна. При нажатии для приложения срабатывает метод onStop(), больше вам ничего не нужно.
Re: Перехват кнопок
Спасбо, я это учту.
Re: Перехват кнопок
Но почему не работает это?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
return(true);
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
return(true);
}
return super.onKeyDown(keyCode, event);
}
Re: Перехват кнопок
потому, что как я и писал выше - фреймворк никогда не посылает приложению это событие, т.е. условие никогда не будет true. Вы работаете на уровне framework -ка через предоставленное вендором sdk, а у него есть свои ограничения. Это событие доступно на уровне Android runtime.Fisheye писал(а):Но почему не работает это?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
return(true);
}
return super.onKeyDown(keyCode, event);
}
Re: Перехват кнопок
Все понятно, спасибо.