Поиск в Google и проверка SO-ответов дает мне много вариантов, как включить экран для Android, например , этот . Но все они используют один или несколько устаревших методов или перечислений. Если я попробую замены, они не будут работать. Моя цель - сделать это в начале инструментальных испытаний без использования устаревших методов.
Вот мои попытки
A)
val power = context.getSystemService(POWER_SERVICE) as PowerManager
val wakeLock = power.newWakeLock(FULL_WAKE_LOCK or ACQUIRE_CAUSES_WAKEUP or ON_AFTER_RELEASE, "tag")
wakeLock.acquire()
Работает, но использует устаревший enum FULL_WAKE_LOCK
. Снятие этого флага приводит к ошибке, указывающей мне указать уровень. В устаревшей инструкции do c говорится, что вместо нее лучше использовать android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
. Поэтому я пытаюсь сделать это в B:
B) В onCreate
:
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
Это не включило экран.
C)
Я также заметил, что в манифесте есть пара интересных флагов для действия, которое нужно установить. Я попытался:
android:turnScreenOn="true"
android:showWhenLocked="true"
Это не включило экран
Пока работает решение А, я стараюсь использовать функции, не подлежащие устареванию. Это больше академический вопрос. Кто-нибудь знает, как программно включить экран, не используя устаревшие функции или константы?