Переопределить аппаратные кнопки громкости на экране блокировки (устройство не работает) - PullRequest
0 голосов
/ 07 января 2020

Я искал решение для SO, и хотя это может показаться дубликатом, большинство подобных вопросов спрашивают, как обнаружить аппаратные клавиши регулировки громкости, когда на экране Выкл. . Я нашел предложения по использованию Broadcast Receiver, но не дал полного объяснения.

Я успешно переопределил dispatchKeyEvent (KeyEvent event) метод в моем Activity. Однако, когда экран заблокирован (но телефон активен), эти клавиши не реагируют. Может кто-нибудь, пожалуйста, укажите мне в правильном направлении, где я могу обнаружить эти нажатия, когда экран Вкл , но все еще заблокирован.

1 Ответ

2 голосов
/ 07 января 2020

Я нашел WindowManager.LayoutParams FLAG_SHOW_WHEN_LOCKED , который, хотя и не рекомендуется в API 27, работает хорошо и выполняет то, что мне действительно нужно на моем устройстве API 26. Я поместил код в метод onCreate(... моей Деятельности прямо перед setContentView(....

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
    this.setShowWhenLocked(true);
} else {
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}
...