在 Android 4.4.2 AOSP 中禁用屏幕超时功能

Disable screen timeout functionality in Android 4.4.2 AOSP

我正在将 Android Kitkat 4.4.2 移植到基于 Freescale iMX6 的定制板上。 Android 现在可以正常工作,但它需要保持屏幕永久打开,而不管任何应用程序是 运行。

我正在浏览 AOSP 代码以找出要注释掉哪个函数以禁用屏幕超时功能,但到目前为止没有成功。你们能指出右边吗file/function?

到目前为止,我已经尝试在 frameworks/base/services/java/com/android/server/power/PowerManagerService.java 中注释掉 goToSleepInternal() 函数中的代码,但它没有禁用屏幕超时。

创建一个启动器应用程序并从中调用代码以保持屏幕打开,如下所示:

How do I keep the screen on in my App?

我终于自己解决了这个问题。

我在文件 frameworks/base/services/java/com/android/server/power/PowerManagerService.java 中评论了对 handleUserActivityTimeout() 的函数调用:

@@ -2511,7 +2511,7 @@ public final class PowerManagerService extends IPowerManager.Stub
         public void handleMessage(Message msg) {
             switch (msg.what) {
                 case MSG_USER_ACTIVITY_TIMEOUT:
-                    handleUserActivityTimeout();
+                    //handleUserActivityTimeout();
                     break;
                 case MSG_SANDMAN:
                     handleSandman();

对于那些偶然发现这个问题并正在寻找不需要更改源代码的解决方案的人:

您可以使用覆盖更改 "Developer options" 中 "Keep Screen On" 设置的默认值。只需将以下行添加到 <...>/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml:

<bool name="def_stay_on_while_plugged_in">true</bool>