Android - 关闭屏幕而不进入待机模式

标签 android screen

我知道这个问题已经被问过很多次了,但从来没有得到令人满意的回答。

我的问题如下:

我有一项 Activity 可以防止屏幕在预定义的时间内关闭。

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

当预定义的时间结束时,我会显示一个带有倒计时的对话框,通知用户如果他不按“取消”,显示屏将在 10 秒后关闭。

我设法关闭了显示屏,但手机总是切换到待机模式。

为了关闭我使用了:

Window mywindow = getWindow();

WindowManager.LayoutParams lp = mywindow.getAttributes();

lp.screenBrightness = 0.0f;

mywindow.setAttributes(lp);

是否有可能在不进入待机模式(暂停 Activity )的情况下使显示屏完全变暗。

我的目标是用户只需点击显示屏即可再次调亮屏幕。因此 Activity 必须保持 Activity 状态。

有人问过类似的问题here .

因为这个问题已经问了快一年了,我希望同时有人能解决这个问题。

很多问候

希奇

最佳答案

似乎无法通过触摸显示屏来关闭屏幕并重新激活。

我现在的新方法:

private WakeLock screenWakeLock;

PowerManager pm = PowerManager.getSystemService(Context.POWER_SERVICE);
screenWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
                                "screenWakeLock");
screenWakeLock.acquire();

PARTIAL_WAKE_LOCK 保持 CPU 运行但允许显示器关闭。

当按下电源或主页按钮时,显示屏再次打开并且 Activity 再次可见(无需“滑动解锁”或其他方式)。

不要忘记释放 screenWakeLock

在我的例子中,我是在 Activity 的 onResume() 中完成的:

if (screenWakeLock != null) {
   if(screenWakeLock.isHeld())
      screenWakeLock.release();
   screenWakeLock = null;
}

也许这对将来遇到类似问题的人有帮助。

关于Android - 关闭屏幕而不进入待机模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14274390/

相关文章:

java - Whitespace Surround Android 相机预览

gtk - 通过 GTK 获取 dpi 设置

java - CRest日志请求/响应体

android - 以编程方式裁剪位图的底部

Android:如何从音频文件中获取音频细节

python-2.7 - 如何查看“屏幕截图:可通过屏幕获取”?

javascript - 如何在 babylon.js 中计算相机在屏幕中插入模型的位置?

android - 动态 react native 更改响应程序

android - MultiSelectListPreference 不存储值?

android - 如何防止媒体播放器在屏幕关闭时停止?