TYPE_STATUS_BAR覆盖使系统忽略屏幕超时

时间:2019-03-11 09:44:57

标签: android timeout overlay

早安, 我正在开发由服务发布的叠加层。 问题在于,即使屏幕超时过期后,屏幕也始终保持打开状态。

这是我的代码:

WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);

    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
            WindowManager.LayoutParams.TYPE_STATUS_BAR|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);
    params.gravity= Gravity.TOP | Gravity.LEFT;
            overlay.setKeepScreenOn(false);
            wm.addView(overlay, params);

我已经尝试添加WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON,但是没有运气。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

解决方案是不使用WindowManager.LayoutParams.TYPE_STATUS_BAR 但是权限较低的用户,因为该权限仅由系统使用。