Планшет Android не запускает KeyboardEvent.KEY_DOWN - PullRequest
0 голосов
/ 29 февраля 2012

Я пытаюсь проверить работоспособность кнопки по умолчанию на главном экране Android, но событие KeyboardEvent.KEY_UP не срабатывает при нажатии клавиши home на планшете, который у меня есть.(Eee Transfor Prime Prime) Есть ли еще одна причина, чтобы обнаружить и остановить эту функцию?Вот код, который я пытаюсь использовать для пользователя

import mx.events.FlexEvent;

        // Add the hardware key event handlers to the stage.
        protected function appCompleteHandler(event:FlexEvent):void {
            stage.addEventListener(KeyboardEvent.KEY_DOWN, handleButtons,false, 1);
            stage.addEventListener(KeyboardEvent.KEY_UP, handleButtons,false, 1);
        }

        // Event handler to handle hardware keyboard keys.
        protected function handleButtons(event:KeyboardEvent):void
        {
            trace("Event fired");
            if (event.keyCode == Keyboard.HOME) {
                event.preventDefault();
                trace("home");
            } else if (event.keyCode == Keyboard.BACK) {
                // Hanlde back button.
                event.preventDefault();
                trace("back");
            }

        }

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Кнопка «Домой» - это специальная кнопка, которую вы не можете перехватить.Ваш код верен, однако, как только событие KEY_UP произойдет, ваше приложение будет приостановлено и остановлено, без возможности отреагировать на KEY_UP.

Однако существует косвенный путь.Хотя вы не можете остановить работу ключа HOME, вы можете выполнять свои собственные действия HOME.При первом запуске вам будет задан вопрос, какое действие вы хотите использовать в качестве HOME.Оттуда все, что вам нужно сделать, это добавить кнопку, которая после ввода пароля запускает реальную домашнюю активность.

Для более подробной информации, посмотрите на ответы на этот вопрос: Android - Is Itможно отключить нажатие кнопки домой

0 голосов
/ 29 февраля 2012

Попробуйте это:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_HOME)) {
        doSomethingHere();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
...