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

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

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

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

заблаговременно.

Ответ 1

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

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

Ответ 2

Это, безусловно, предотвратит длительное нажатие кнопки.

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

Ответ 3

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

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