我正在使用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 );
答案 0 :(得分:11)
答案 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