Android 即使应用程序处于后台,也要关闭显示器
我使用以下代码在航班上创建一个窗口,在拍照时用作预览:Android 即使应用程序处于后台,也要关闭显示器,android,screen,powermanager,Android,Screen,Powermanager,我使用以下代码在航班上创建一个窗口,在拍照时用作预览: void CreatePreviewDialog() { dummy_frame_layout = new DummyFrameLayout(context); wm_params = new WindowManager.LayoutParams( 240, 320, 0, 0, WindowManager.LayoutParams.TYPE_S
void CreatePreviewDialog()
{
dummy_frame_layout = new DummyFrameLayout(context);
wm_params = new WindowManager.LayoutParams(
240, 320, 0, 0,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON|
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
wm_params.gravity = Gravity.CENTER;
wm_params.setTitle("Preview");
window_manager = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
window_manager.addView(dummy_frame_layout, wm_params);
}
我的应用程序在后台运行,并被警报唤醒。如您所见,它会打开显示屏。拍摄完照片后,使用以下方法破坏车窗:
void DestroyPreviewDialog()
{
((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).removeView(dummy_frame_layout);
dummy_frame_layout = null;
}
问题是屏幕仍然打开。我想在预览窗口关闭时关闭屏幕。应如何修改销毁预览对话框()
,以关闭显示?(当然,只有在调用CreatePreviewDialog()
时发现显示器已关闭时,才应关闭显示器,但这很简单。现在我需要一种关闭显示器的方法)
编辑
我已经修改了DestroyPreviewWindow()
,如下所示:
private void DestroyPreviewDialog()
{
wm_params.screenBrightness = 0.0f;
window_manager.updateViewLayout(dummy_frame_layout, wm_params);
((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).removeView(dummy_frame_layout);
dummy_frame_layout = null;
}
但结果并没有改变。屏幕仍然亮着 重复的:@hatcyl你能解释一下为什么它是重复的吗???如果你点击那个链接,它会告诉你如何用程序锁定手机。@hatcyl,我不想锁定手机。我的信息没有说明我想锁定手机。。。我想关掉屏幕。让我澄清一下,我提供的链接“锁定手机”,但其中一部分是关闭屏幕。这是所有“用图标关闭屏幕”应用程序使用的相同方法。