Включить экран на устройстве - PullRequest
12 голосов
/ 28 сентября 2011

Как я могу включить сцену?

Я пробовал что-то подобное

adb -d  shell am broadcast -a android.intent.action.SCREEN_ON

Это действительно должно работать, я отправляю сообщение о намерениях, оно получено системой, но экран не включается

Не понимаю, в чем проблема, можно ли повернуть экран устройства кодом? Я имею в виду с программным обеспечением? Потому что кажется, что включение экрана осуществляется нажатием аппаратной кнопки. , , по крайней мере, я получил эту валку, я не прав?

Ответы [ 5 ]

25 голосов
/ 26 мая 2015
adb shell input keyevent KEYCODE_POWER

Работает, чтобы включить экран (когда дисплей выключен) Работает, чтобы выключить экран (когда дисплей включен / активен)

13 голосов
/ 17 декабря 2016

Для Android 5.0 и выше:

adb shell input keyevent KEYCODE_WAKEUP

или

adb shell input keyevent 224

Ссылка :

Просыпается устройство. Ведет себя как KEYCODE_POWER, но не работает, если устройство уже активировано.


Примечание: KEYCODE_POWER добавлено на уровне API 1, а KEYCODE_WAKEUP добавлено на уровне API 20!

11 голосов
/ 30 апреля 2014

вы можете включить / выключить его, если вам нравится:

adb shell
@shell: input keyevent 26
@shell: (enter or via hidden command empty line)
@shell: exit

это работало для меня на некоторых версиях Android;)
(ПРИМЕЧАНИЕ: это включит и выключит экран, зависитна текущее состояние экрана)

Чтобы определить текущее состояние экрана, вы можете использовать следующие способы:
Android <5.xx <br>adb shell dumpsys input_method
В выходной поиск для mScreenOn=true/false

Android> = 5.xx
adb shell dumpsys display
В выводе поиска для mScreenState=ON/OFF

В моих сценариях я использую это \s{0,}mScreen(State|On)=(?<STATE>(true|false|on|off))\s{0,} (Compiled | IgnoreCase| ExplicitCapture) регулярное выражение для обоих выходов для определения текущего состояния.

EDIT (16.03.2018):

Существует также другой способ определения состояния экрана, он работает с Android 3.0.Команда dumpsys window policy даст нам все, что нам нужно.- В выводе ищем mScreenOn(Fully)?=(?<STATE>(true|false)).Есть также другая полезная информация, такая как:

  • mUnrestrictedScreen (значение равно: (0,0) 768x1280)
  • mRestrictedScreen (значение равно: (0,0) 768x1184)

С уважением,

k1ll3r8e

5 голосов
/ 28 сентября 2011

Я могу ошибаться, но ...

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

Я думаю, что система отправляет 'android.intent.action.SCREEN_ON', когда экран включен, но отправка 'android.intent.action.SCREEN_ON' не обязательно заставляет экран продолжаться.

Надеюсь, это имеет смысл.

Ответ можно найти в ...

1 голос
/ 24 мая 2015

Команда для включения / выключения экрана:

adb shell input keyevent 26

Эта сокращенная команда является предпочтительной, поскольку она позволяет использовать ее в сценариях.

Cheers!

...