Перехват кнопок

Ответить
Аватара пользователя
Fisheye
Сообщения: 30
Зарегистрирован: 29 авг 2014, 17:40

Перехват кнопок

Сообщение Fisheye » 29 авг 2014, 17:58

Как перехватывать кнопки на Android 4.+ ? Конкретнее мне нужно перехватить кнопку HOME.

При использовании этого:

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


Программа вылетает. Не знаю почему!

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Перехват кнопок

Сообщение altwin » 30 авг 2014, 13:33

значение константы для кнопки Home - 0x00000003, она доступна на очень низком уровне, фреймворк никогда не посылает приложению это событие, да и нафига она вам нужна. При нажатии для приложения срабатывает метод onStop(), больше вам ничего не нужно.
Изображение

Аватара пользователя
Fisheye
Сообщения: 30
Зарегистрирован: 29 авг 2014, 17:40

Re: Перехват кнопок

Сообщение Fisheye » 30 авг 2014, 21:00

Спасбо, я это учту.

Аватара пользователя
Fisheye
Сообщения: 30
Зарегистрирован: 29 авг 2014, 17:40

Re: Перехват кнопок

Сообщение Fisheye » 30 авг 2014, 21:16

Но почему не работает это?

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

if(keyCode == KeyEvent.KEYCODE_HOME)
{
return(true);
}
return super.onKeyDown(keyCode, event);
}

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Перехват кнопок

Сообщение altwin » 30 авг 2014, 22:47

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.
Изображение
Изображение

Аватара пользователя
Fisheye
Сообщения: 30
Зарегистрирован: 29 авг 2014, 17:40

Re: Перехват кнопок

Сообщение Fisheye » 30 авг 2014, 23:18

Все понятно, спасибо.

Ответить