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

时间:2016-12-26 06:48:14

标签: android adb android-screen

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

 FragSignIn fragSignIn=(FragSignIn) getSupportFragmentManager().findFragmentByTag(FragSignIn.class.getName());
    if(fragSignIn!=null && fragSignIn.isVisible()){
        fragSignIn.onResume();
    }else {
        super.onBackPressed();
    }

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

我尝试检查屏幕状态,但效果不佳。实际上,屏幕状态更新与手机处理相比较慢。我也使用其他方式,但这些方式使屏幕唤醒而不睡觉。

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 ); 

2 个答案:

答案 0 :(得分:11)

adb shell输入keyevent 26

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

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

答案 1 :(得分:3)

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

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