如何使用adb命令打开和关闭屏幕?

Joh*_*ohn 7 android adb android-screen

我正在使用KEYCODE_POWER来打开和关闭我的root电话.波纹管命令用于打开和关闭屏幕两种情况.

adb shell input keyevent KEYCODE_POWER
Run Code Online (Sandbox Code Playgroud)

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

我试图检查屏幕状态,但它不能很好地工作.实际上,屏幕状态更新与手机处理相比较慢.我也使用其他方式,但这些方式使屏幕唤醒而不睡觉.

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 ); 
Run Code Online (Sandbox Code Playgroud)

第二种方式:

PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
wl.acquire();
Run Code Online (Sandbox Code Playgroud)

Vov*_*huk 14

adb shell输入keyevent 26

26 - 是设备上的keyevent代码电源按钮.

您可以通过链接找到更多命令:http://adbshel​​l.com/commands

  • 也关了.... (2认同)

0xA*_*iHn 7

您可以编写脚本来控制屏幕的开/关。这是示例脚本代码:

result="$(adb shell dumpsys input_method | grep -c "mScreenOn=true")"

if [ "$result" == 1 ]; then
    echo "Screen is already on."

else
    echo "Turning screen on."
    adb shell input keyevent 26
fi
Run Code Online (Sandbox Code Playgroud)