Отключить кнопку питания ... или ... Возобновить полный экран в приложении Android малыша
Я создаю Android-приложение для малышей. Поэтому мне нужно заблокировать как можно больше кнопок, чтобы предотвратить доступ малыша к другим функциям устройства Android. По сути, я хочу воспроизвести механизм блокировки в популярных приложениях для малышей, таких как «Блокировка малышей». У меня есть логика, которая требует, чтобы пользователь коснулся четырех углов экрана по часовой стрелке, чтобы выйти из приложения.
Чтобы показать приложение в полноэкранном режиме, у меня есть следующее в моем манифесте
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
Чтобы приложение отображалось только в ландшафтном режиме, в событии onCreate моей деятельности есть следующее
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Чтобы предотвратить использование любой из кнопок, я переопределяю событие onKeyDown следующим кодом
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return true;
}
Все отлично работает. Все идет нормально. Есть только одна кнопка, которую я не могу отключить ... кнопка питания. Я работаю в предположении, что нет возможности отключить кнопку питания. Пожалуйста, дайте мне знать, если я ошибаюсь. Итак, мне нужно выяснить, как с этим бороться. Очевидно, что если кнопка питания удерживается, а устройство выключено, то я ничего не могу с этим поделать. Однако, если нажать кнопку питания, чтобы выключить экран, а затем снова нажать, чтобы снова включить экран, я бы хотел иметь дело с этим соответствующим образом.
Происходит следующее: приложение возобновляет работу, но перестает работать в полноэкранном режиме. Панель уведомлений отображается. Таким образом, я могу опустить его и получить доступ к другим областям Android.
Почему пробуждение экрана на устройстве Android приводит к появлению панели уведомлений поверх полноэкранного приложения, настроенного, как описано выше ... и как я могу предотвратить это?