android: 关闭屏幕

android: turn screen Off

目的:

in an android app, turn screen off when user touch a button.

答案已经存在:

  1. 将屏幕亮度设置为零。

    WindowManager.LayoutParams params = getWindow().getAttributes(); 
    params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON; 
    params.screenBrightness = 0; 
    getWindow().setAttributes(params);
    

    This code makes screen dim, but can't turn off.

  2. 使用PowerManager.WakeLock

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
    wl.acquire();
    //..screen will stay on during this section..
    //wl.release();
    

    This code keep a phone at 'Wake_State'. In following Table, 'PARTIAL_WAKE_LOCK' looks to turn off screen. But it just allows that a user turn screen off personally (maybe with power-button).

所以,我想在不使用 'power-button' 的情况下完全关闭屏幕。感谢阅读。

--- 补充一下我的意图------------------------

我的用户需要在其他应用程序继续运行时关闭屏幕。不是为了让'POWER_KEY_DOWN(UP)_EVENT'我选择了这种方式。我欢迎另一种归档相同目的的方式。

你可以通过将wake_setting时间设置为1秒来实现。

以上分享的两种方式我都试过了,设置wake_setting为1秒后屏幕略显可见

我必须关掉屏幕。为此,您将添加 SETTING_Change 权限(仅在有根手机中可用)。