2011-09-28 147 views
8

如何打开屏幕?打开设备上的屏幕

我想是这样的

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

它真的应该工作,我发送广播意图它是由系统接收,但屏幕上不

转,我不明白是什么问题是否有可能通过代码打开设备的屏幕?我的意思是软件?因为它似乎只是通过硬件按钮按下来完成屏幕的打开。 。 。至少我得到了那种感觉,我错了吗?

+1

这看起来像这个复制品,如果我没有弄错:http://stackoverflow.com/questions/2891337/turning-on-screen-programmatically – Sephy

+0

仅供参考:如果您使用'adb shell am start -n packagename/activityname'通过adb启动应用程序,屏幕将自动打开,如果它目前关闭(在Android 5.0上使用Unity3d应用程序进行测试) –

回答

4

我可能是错关于这一点,但...

你不应该认为广播的东西来发送到把事情做好,而是将它们看作被发送当事情的东西完成

我觉得系统发送'android.intent.action.SCREEN_ON'当屏幕进行,但发送'android.intent.action.SCREEN_ON'并不一定会让屏幕继续。

我希望这是有道理的。

要知道答案,你可以找到它...

9

U可以开启/关闭如果妳不喜欢:

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

这对一些android版本的我工作;)
(注意:这个w生病打开屏幕和关闭,取决于实际的屏幕状态)

检测屏幕ü可以使用下面的方法的当前状态:
的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,}(编译| IGNORECASE | ExplicitCapture)的正则表达式为两路输出来检测当前状态。

问候, k1ll3r8e

1

的命令来切换屏幕的开/关是:优先

adb shell input keyevent 26 

该冷凝命令,因为它可以让你在脚本中使用它。

干杯!

+1

切换ist不等于“打开”,打开时必须考虑到如果显示器已经打开,否则可能会关闭。 – David

18
adb shell input keyevent KEYCODE_POWER 

Works以打开屏幕(当显示器关闭) 工作以关闭屏幕(当显示开/苏醒)

+0

嗨,与关闭/打开,它适用于一个设备(机器人kitkat),但不是在另一个(穿marshmellow) – ransh

+1

对我来说棉花糖(6.0)和软糖豆(4.2.2)。 –

5

对于Android 5.0及以上:

adb shell input keyevent KEYCODE_WAKEUP 

adb shell input keyevent 224 

Reference

唤醒设备。行为有点像KEYCODE_POWER,但是如果设备已经醒来,它不起作用。


注:KEYCODE_POWER在API级别1,而KEYCODE_WAKEUP API等级20加!