Включить экран на устройстве
Как включить sceen?
Я пробовал что-то вроде этого
adb -d shell am broadcast -a android.intent.action.SCREEN_ON
Это действительно должно работать, я отправляю трансляцию, которую он получает системой, но экран не включается
Я не понимаю, в чем проблема, можно ли повернуть экран устройства по коду? Я имею в виду программное обеспечение? Потому что кажется, что включение экрана происходит только при нажатии кнопки аппаратного обеспечения., по крайней мере, я получил эту вырубку, я не прав?
Ответы
Ответ 1
Я мог ошибаться в этом, но...
Вы не должны думать о вещах как о чем-то, чтобы отправить, чтобы добиться результата, но вместо этого подумайте о них как о вещах, которые отправлены, когда делаются дела.
Я думаю, что система отправляет "android.intent.action.SCREEN_ON", когда экран продолжается, но отправка "android.intent.action.SCREEN_ON" необязательно делает экран включенным.
Надеюсь, это имеет смысл.
Для ответа вы можете найти его в...
Ответ 2
adb shell input keyevent KEYCODE_POWER
Работает для включения экрана (когда дисплей выключен)
Работает, чтобы отключить экран (когда дисплей включен/просыпается)
Ответ 3
Для Android 5.0 и выше:
adb shell input keyevent KEYCODE_WAKEUP
или же
adb shell input keyevent 224
Ссылка:
Просыпается устройство. Ведет себя как KEYCODE_POWER, но не работает, если устройство уже активировано.
Примечание. KEYCODE_POWER
добавлен на уровне API 1, а KEYCODE_WAKEUP
на уровне API 20!
Ответ 4
Вы можете включить/выключить его, если вам нравится:
adb shell
@shell: input keyevent 26
@shell: (enter or via hidden command empty line)
@shell: exit
это работало для меня на некоторых версиях Android;)
(ПРИМЕЧАНИЕ: это включит и выключит экран, зависит от фактического состояния экрана)
Для определения текущего состояния экрана вы можете использовать следующие способы:
Android <5.xx
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) для оба выхода для определения текущего состояния.
РЕДАКТИРОВАТЬ (16.03.2018):
Существует также другой способ определения состояния экрана, он работает с Android 3.0. Команда dumpsys window policy
даст нам все, что нам нужно. - В выводе ищите mScreenOn(Fully)?=(?<STATE>(true|false))
. Есть и другая полезная информация, такая как:
-
mUnrestrictedScreen
(значение равно: (0,0) 768x1280
) -
mRestrictedScreen
(значение равно: (0,0) 768x1184
)
С Уважением,
k1ll3r8e
Ответ 5
Команда для включения/выключения экрана:
adb shell input keyevent 26
Эта сжатая команда предпочтительнее, потому что она позволяет использовать ее в сценариях.
Ура!