Luk*_*kap 14 android screen broadcast android-intent
我怎样才能打开它?
我试过这样的事
adb -d shell am broadcast -a android.intent.action.SCREEN_ON
Run Code Online (Sandbox Code Playgroud)
它真的应该工作,我发送广播意图它是由系统接收,但屏幕没有打开
我不明白是什么问题,是否可以通过代码转动设备的屏幕?我的意思是软件?因为似乎只需按下硬件按钮即可完成屏幕的打开...至少我得到了那个感觉,我错了吗?
Gra*_*nry 26
adb shell input keyevent KEYCODE_POWER
Run Code Online (Sandbox Code Playgroud)
用于打开屏幕(当显示器关闭时)用于关闭屏幕(当显示器打开/唤醒时)
Mir*_*ili 13
对于Android 5.0及更高版本:
adb shell input keyevent KEYCODE_WAKEUP
Run Code Online (Sandbox Code Playgroud)
要么
adb shell input keyevent 224
Run Code Online (Sandbox Code Playgroud)
参考:
唤醒设备.行为有点像KEYCODE_POWER,但如果设备已经清醒则无效.
注意:在API级别20中添加KEYCODE_POWER时KEYCODE_WAKEUP添加API级别1 !
k1l*_*r8e 12
如果您愿意,可以打开/关闭它:
adb shell
@shell: input keyevent 26
@shell: (enter or via hidden command empty line)
@shell: exit
Run Code Online (Sandbox Code Playgroud)
这在我的一些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
我可能错了,但......
您不应该将广播视为要完成任务的事情,而应将其视为事情发生时发送的事物.
我认为系统会在屏幕显示时发送'android.intent.action.SCREEN_ON',但发送'android.intent.action.SCREEN_ON'并不一定会让屏幕继续运行.
我希望这是有道理的.
对于答案,你可以在...中找到它
| 归档时间: |
|
| 查看次数: |
18143 次 |
| 最近记录: |