【问题标题】:Disable screen timeout functionality in Android 4.4.2 AOSP在 Android 4.4.2 AOSP 中禁用屏幕超时功能
【发布时间】:2015-07-02 16:23:07
【问题描述】:

我正在将 Android Kitkat 4.4.2 移植到基于飞思卡尔 iMX6 的定制板上。 Android 现在可以正常工作,但无论运行什么应用程序,它都需要始终保持屏幕开启。

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

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

【问题讨论】:

    标签: android android-source


    【解决方案1】:

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

    您可以使用叠加层更改“开发者选项”中“保持屏幕打开”设置的默认值。只需将以下行添加到 <...>/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml:

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

    【讨论】:

      【解决方案2】:

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

      我在文件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();
      

      【讨论】:

        【解决方案3】:

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

        How do I keep the screen on in my App?

        【讨论】:

        • 是的,我有一个自定义启动器,所以我可以这样做。如果我启动一个应用程序,那么启动器会在后台运行吗?
        • SCREEN_DIM_WAKE_LOCK 在 API 级别 17 中已弃用,developer.android.com/reference/android/os/…
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多