Ваша идея не является полностью невозможной для Android.
Приложение не может иметь более высокий приоритет, чем меню выключения Android. Однако это не значит, что надежды нет.
Если вы помните популярные приложения «Тревога», они обычно имеют функцию, которая не позволяет отключить телефон при поступлении сигнала тревоги. Обычно это делается путем обнаружения длительного нажатия кнопки питания и последующего закрытия меню выключения питания.
Вы можете посмотреть на этот ответ, как это сделать: https://stackoverflow.com/a/53679477
Тем не менее, это просто, чтобы вы могли закрыть меню выключения Android, чтобы вы могли показать свое собственное меню выключения.
Впоследствии, с вашей идеей отображения черного экрана и бесшумного режима ... на самом деле есть четыре три проблемы.
Подсветка экрана для экранов без AMOLED
Панель состояния и навигации
Невозможно заблокировать принудительное отключение
Лично, в первые дни Android и в первые годы разработки Android, я выпустил приложение с аналогичной идеей (у телефона есть иллюзия выключения, так что вероятность того, что телефон останется включенным в случае кражи), но из-за этих четырех проблемных областей приложение было удалено.
Так что я с опытом говорю, что:
Черный экран плохо сочетается с экранами, требующими подсветки. Даже при самых низких настройках яркости полностью черный экран все равно будет легко виден.
У Android нет способа навсегда скрыть строки навигации и состояния. Лучшее, что вы получите, - это режим погружения, но этот режим заставит панели временно появляться, если вы дотронетесь до экрана. Даже если вы используете полноэкранное упражнение, при смахивании вниз или смахивании все равно будут отображаться эти полосы. Я считаю, что ваш единственный способ скрыть оба этих бара - это Root.
Абсолютно невозможно заблокировать кого-либо от принудительного отключения. Это полностью обходит меню выключения питания и просто не блокируется. Поэтому, хотя ваше приложение может блокировать некоторых воров, оно не может блокировать более параноидальных.
Надеюсь, моего ответа достаточно, чтобы подтолкнуть вас в правильном направлении для вашего приложения.