Как я могу поймать кнопку питания Длительное нажатие?

Я пытаюсь разработать приложение, которое будет делать что-то после нажатия кнопки питания.

У меня есть код, который ловит кнопку onClick of Power, но она не работает. Экран заблокируется.

Сейчас я пытаюсь поймать onLongPress кнопки питания, предотвращая появление опций "Power Off". Любые предложения о том, как это сделать?

заранее спасибо.

3 ответа

Решение

Привет, вы просто пытаетесь получить уведомление о событии, чем, как указал Картик, вам просто нужно поиграть с событием onKeyDown.

но из того, что я понимаю по вашему вопросу, вы на самом деле хотите предотвратить поведение кнопки питания, а это невозможно сделать. точно так же, как нажатие кнопки "Домой", некоторые события в Android не могут быть предотвращены, чтобы избежать людей, имеющих приложения, из которых они не могут выйти.

Это наверняка предотвратит длительное нажатие кнопки.

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if(!hasFocus) {
           Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
            sendBroadcast(closeDialog);
        }
    }

Вы можете включить экран, как описано в http://developer.android.com/reference/android/os/PowerManager.html

Это может истощить процессор и привести к путанице с ожиданиями людей о том, что происходит, когда они нажимают кнопку питания, поэтому будьте осторожны с этим.

Другие вопросы по тегам