【问题标题】:How to force the device to return in standby mode如何强制设备返回待机模式
【发布时间】:2014-01-20 11:13:26
【问题描述】:

我有一个定期(每 30 秒)唤醒我的设备的闹钟。当警报开始时,我使用以下代码打开一个窗口:

private 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);
}

然后,我使用以下代码关闭窗口:

private void DestroyPreviewDialog()
{
    ((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).removeView(dummy_frame_layout);
    dummy_frame_layout = null;
}

问题如下。假设设备处于待机模式。当警报发生时,它会调用CreatePreviewDialog 来打开显示屏。当调用DestroyPreviewDialog 时,我希望设备返回其待机模式,或者至少让显示器关闭,但我还没有找到任何解决此问题的方法。在DestroyPreviewDialog 中关闭窗口之前,我还添加了以下代码:

    wm_params.screenBrightness = 0.0f;
    window_manager.updateViewLayout(dummy_frame_layout, wm_params);

但什么也没发生。屏幕一直显示锁定屏幕,直到下一个警报发生。就像应用程序在前台一样。任何的想法?

【问题讨论】:

    标签: android power-management standby


    【解决方案1】:

    没有办法做到这一点... 看这个问题:Force standby

    您需要系统应用程序的权限...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2011-07-01
      • 2015-01-24
      • 2016-08-27
      • 2017-10-29
      • 2016-05-12
      相关资源
      最近更新 更多