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

TYPE_STATUS_BAR overlay makes system ignore screen timeout

早上好, 我正在开发一个由服务发布的叠加层。 问题是屏幕一直亮着,即使在屏幕超时后也是如此。

这是我的代码:

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,但没有成功。

感谢您的帮助。

解决办法是不用WindowManager.LayoutParams.TYPE_STATUS_BAR 但权限较低,因为它仅供系统使用。