0

我需要使用 SensorEventListener 打开/关闭屏幕

    @Override
    public final void onSensorChanged(SensorEvent event) {
        if (event.values[0] == 0)
            turnScreenOFF();
        else if (event.values[0] == 5)
            turnScreenON();
    }

我已经为此尝试了许多示例代码,但是在关闭屏幕后我无法再次打开屏幕

有关闭屏幕的代码:

        WindowManager.LayoutParams params = getWindow().getAttributes();
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
        params.screenBrightness = 0.0f;
        getWindow().setAttributes(params);
4

1 回答 1

0

对于屏幕开关状态,您可以尝试使用ACTION_SCREEN_ONACTION_SCREEN_OFF意图,如果您正在制作可能需要保存状态或响应用户屏幕进入睡眠/唤醒等的应用程序,这将非常有用。

查看处理屏幕开/关。

编辑:

试试下面:

 private void unlockScreen() {
        Window window = this.getWindow();
        window.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
        window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
        window.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
    }

并从中调用此方法onResume()

于 2013-10-09T12:14:00.280 回答