2016-12-26 73 views
4

我正在使用KEYCODE_POWER来打开和关闭我的手机。波纹管命令用于打开和关闭屏幕。如何使用adb命令打开和关闭屏幕?

adb shell input keyevent KEYCODE_POWER 

但是,我想在分开的情况下使用它:打开和关闭。我有两个功能:打开和关闭功能。如果屏幕关闭,我打开打开功能,它将打开屏幕。如果屏幕已经打开,打开功能将不会执行任何操作。否则,如果屏幕打开,我将调用关闭功能,它将关闭。

我试图检查屏幕状态,但它不能正常工作。实际上,屏幕状态更新与手机处理相比非常慢。我也使用其他方式,但这些方式使屏幕在没有睡眠的情况下唤醒。

final Window win = getWindow(); 
    win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
      WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
      WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | 
      WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | 
      WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON); 

方式二:

PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag"); 
wl.acquire(); 
+0

的[?有没有一种方法来检查,如果Android设备屏幕通过ADB锁定](可能的复制http://stackoverflow.com/questions/35275828/is:

您可以通过链接找到更多命令 - 方式来检查,如果安卓设备屏幕被锁定通过亚行) –

+0

请使用*搜索*。这个话题在这里已经讨论了很多次。 –

回答

0

您可以阅读input_method文件 - adb shell dumpsys input_method
如果您的操作系统版本高达4.x,那么您必须查找mScreenOn字段的值。
如果它是5或更高,那么你应该寻找mInteractivemActive

+0

可以显示更详细的信息 – user8264

+0

'adb shell dumpsys input_method |根据屏幕的状态,grep mScreenOn'将给出一个带有“true”或“false”的字符串。你说过你的设备是根植的,所以如果你没有'grep',你可以安装'busybox'。 – TDG

7

adb shell input keyevent 26

26 - 是设备上的keyevent代码电源按钮。 http://adbshell.com/commands

+0

它也是关闭的。 – user8264

+0

您可以向我发送命令响应。 –

+0

26是权力行动。您可以考虑屏幕开启时按下电源按钮时发生的情况。 – user8264