Intereting Posts
Как использовать метод publishResults () при расширении фильтров в Android? Почему этот сценарий оболочки называется скриптом python? Как преобразовать ответ от Okhttp во входной поток Какую платформу Android и API нужно настроить? «Разрешение отклонено для вложения» (в Gmail 5.0), пытаясь прикрепить файл к намерению электронной почты Выполнение управляющих задач Stopdown при уничтожении активности «Очистить данные» также убивает приложение? Как показать индикатор выполнения перед воспроизведением видео Android facebook SDK как JAR Ресурс Android – массив массивов Передать переменные между рендерером и другим классом с помощью queueEvent () Является ли api ключом в аттестации SafetyNet? Невозможно скомпилировать, Невозможно выполнить dex, не может объединиться, не-jumbo инструкция Изменение цвета полупрозрачного фона для progressbar android Фрагменты все еще добавляются в backstack без вызова addToBackStack, почему?

Вызов скрытого API в Android для отключения экрана

Я думаю об использовании скрытого api, чтобы отключить экран в моем приложении.
setScreenState из https://android.googlesource.com/platform/frameworks/base/+/eclair-release/core/java/android/os/Power.java делает то, что я хочу, но его скрытый API. Означает ли это, что я не должен его использовать? Я думаю, что это довольно стабильный API.
В настоящее время я устанавливаю тайм-аут экрана на 1 миллисекунду, а затем сброс таймаута после выключения экрана. Однако, андроид игнорирует 1 миллисекунду, и вместо этого требуется около 3 секунд, чтобы выключить, а иногда он полностью игнорирует его и не отключается.
Какие-либо предложения?

Solutions Collecting From Web of "Вызов скрытого API в Android для отключения экрана"

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

 public void setBright(float value) { Window mywindow = getWindow(); WindowManager.LayoutParams lp = mywindow.getAttributes(); lp.screenBrightness = value; mywindow.setAttributes(lp); } //call this task to turn off the screen in a fadeout. class Task implements Runnable { public void run() { if (bright != 0) { setBright(bright/100); //start at 10% bright and go to 0 (screen off) bright--; serviceHandler.postDelayed(myTask, 100L); } else { setBright((float) 0.0); bright = 10;//put bright back } } } 

Я использовал задачу обработчика в качестве теста для метода, он работал, когда я вызвал его из onBackPressed в первой сборке. Теперь, у меня просто есть функция setBright до 0.0 at onCreate. Это делает так, чтобы экран фактически не включался, даже если мой пользователь разбудил CPU при случайном нажатии клавиши громкости. Когда я хочу, чтобы экран продолжался, у меня есть ключевой вызов события setBright со значением больше 0 (1.0 означает max bright). Мне очень повезло, что это работает для моей пользовательской активности lockscreen. Я обнаружил, что изменение литеральной системы яркости не работает так, и не отключит экран.

Проверьте мой другой источник на моем проекте svn http://code.google.com/p/mylockforandroid/source/checkout

Насколько сложно, по вашему мнению, попросить команду андроида добавить поддержку для выключения экрана или определения того, должен ли экран просыпаться через замену медиатора Lock аналогично тому, как вы могли бы программировать альтернативное приложение Home Launcher?

Использовать блокировку частичного следа

http://developer.android.com/reference/android/os/PowerManager.html#PARTIAL_WAKE_LOCK

SetScreenState … делает то, что я хочу, но его скрытый API. Означает ли это, что я не должен его использовать?

Да, это означает, что вы не должны его использовать. В этом случае весь класс будет исключен из SDK. Пожалуйста, придерживайтесь SDK .