MTK开发之—开机永不灭屏

步骤一:修改配置文件

文件路径:/frameworks/base/packages/SettingsProvider/res/values/defaults.xml

说明一下:def_screen_off_timeout这个参数是默认上电后关闭屏幕时间,单位是ms,600000就是10分钟,对应的就是10 minutes, 改为0就是不休眠,在packages/apps/Settings/res/values/arrays.xml文件中有一一对应的关系

  <integer name="def_screen_off_timeout">600000</integer>修改为:
  <integer name="def_screen_off_timeout">0</integer>

步骤二:检查配置选项

文件路径:/packages/apps/Settings/res/values/arrays.xml

如下所示,当我们将步骤一中的def_screen_off_timeout设置为0时,对应的是screen_timeout_values下的值,最后对应的就是screen_timeout_entries下的never,意思就是永不休眠

<!-- Display settings.  The delay in inactivity before the screen is turned off. These are shown in a list dialog. -->
    <string-array name="screen_timeout_entries">
        <item>15 seconds</item>
        <item>30 seconds</item>
        <item>1 minute</item>
        <item>2 minutes</item>
        <item>5 minutes</item>
        <item>10 minutes</item>
        <item>30 minutes</item>
        <item>never</item>
    </string-array>

    <!-- Do not translate. -->
    <string-array name="screen_timeout_values" translatable="false">
        <!-- Do not translate. -->
        <item>15000</item>
        <!-- Do not translate. -->
        <item>30000</item>
        <!-- Do not translate. -->
        <item>60000</item>
        <!-- Do not translate. -->
        <item>120000</item>
        <!-- Do not translate. -->
        <item>300000</item>
        <!-- Do not translate. -->
        <item>600000</item>
        <!-- Do not translate. -->
        <item>1800000</item>
        <!-- Do not translate. -->
        <item>0</item>
    </string-array>

步骤三:代码修改

文件路径:/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java

修改getScreenOffTimeoutLocked()函数为:

private int getScreenOffTimeoutLocked(intsleepTimeout) {
		int nosleep;
		int timeout = mScreenOffTimeoutSetting;
        if(isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {
            timeout = Math.min(timeout,mMaximumScreenOffTimeoutFromDeviceAdmin);
        }
        if(mUserActivityTimeoutOverrideFromWindowManager >= 0) {
            timeout = (int)Math.min(timeout,mUserActivityTimeoutOverrideFromWindowManager);
        }
        if (sleepTimeout >= 0) {
            timeout = Math.min(timeout,sleepTimeout);
        }
        
       nosleep = mScreenOffTimeoutSetting;
       if(nosleep < 0)
       {
           nosleep = mMaximumScreenOffTimeoutFromDeviceAdmin;
           return Math.max(nosleep,mMaximumScreenOffTimeoutFromDeviceAdmin);
       }
        return Math.max(timeout,mMinimumScreenOffTimeoutConfig);
    }

参考:https://www.cnblogs.com/zxouxuewei/p/8127858.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东皇※太一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值