0

我想在用户单击按钮时关闭屏幕。我试图用 PowerManager 类来做,但我没有得到好的结果。在android中关闭屏幕的最佳方法是什么?

我正在使用下面的代码:

    PowerManager pm = (PowerManager)this.getSystemService(
            Context.POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(
            PowerManager.PARTIAL_WAKE_LOCK,
            "");
    wl.acquire();

但只能使用以下代码:

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

但是,此代码仅将亮度设置为 0,但没有关闭屏幕。

非常感谢。

4

1 回答 1

3

您可以通过覆盖系统屏幕关闭时间来关闭屏幕。

首先获取系统关闭时间

int defaultTurnOffTime =  Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, 60000);

然后把你的关机时间

Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, 1000);

当屏幕关闭时,设置默认关闭时间

Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, defaultTurnOffTime);

添加以下权限

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
于 2017-07-12T06:04:10.370 回答