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

Re: Перехват кнопок
Добавлено: 30 авг 2014, 23:18
Fisheye
Все понятно, спасибо.