Вызов скрытого 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 .