【发布时间】:2021-09-05 12:51:51
【问题描述】:
我正在尝试构建一个可以防止手机屏幕熄灭的应用程序(即使应用程序被最小化到后台)
我知道这个功能肯定是可行的,因为 Play 商店中有很多应用程序可以做到这一点。
https://play.google.com/store/apps/details?id=com.eonsoft.ScreenON
此特定应用可防止手机无限期超时。他们要求绘制其他应用程序权限。但我无法弄清楚它如何帮助防止手机出现屏幕超时。你们中的任何一位专家都可以指导我如何实现这一目标吗?
我已经尝试过的事情:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
但上面的代码只有在我的应用打开时才能防止手机屏幕超时。即使我的最小化,我也希望它能够工作。
我已经尝试过这里给出的解决方案: Android disable screen timeout while app is running
但上述解决方案仅在我的应用程序正在运行时才有效。让我用一个用例场景来解释。我希望他们在使用他们选择的 PDF 查看器阅读文档时屏幕不会超时(在这种情况下,我的应用程序可能因为他们已最小化而未处于活动状态)
【问题讨论】:
-
“但是上面的代码只有在我的应用程序打开时才能防止手机屏幕超时”——不,只要
Window(来自getWindow())是可见的。 “他们要求在其他应用程序上绘制权限”- 最有可能的是,他们从Service显示自己的Window。请注意,此权限并非在所有 Android 设备上都可用,而且似乎在未来几年内可能会消失。