android 4.2以上版本永不休眠

android4.2以上版本比android4.2以前的版本framework层框架部分有了很大的改变,androd4.2以前版本framework层给上的接口函数与android4.2以上版本的接口函数也有了些变化,以前让机器永不休眠的方法用在android4.2以上版本已经不起作用了。现将android4.2以上版本修改永不休眠的方法记录下来。

首先还是要修改defaults.xml文件里def_screen_off_timeout的值。

  1. 修改default值,不自动休眠

    /frameworks/base/packages/SettingsProvider/res/values/defaults.xml

    修改def_screen_off_timeout为-1

2.修改PowerManagerService.java文件getScreenOffTimeoutLocked()函数

修改前:


    private int getScreenOffTimeoutLocked() {  
            int timeout = mScreenOffTimeoutSetting;  
            if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {  
                timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin);  
            }  
            if (mUserActivityTimeoutOverrideFromWindowManager >= 0) {  
                timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromWindowManager);  
            }  

            return Math.max(timeout, MINIMUM_SCREEN_OFF_TIMEOUT);  
        }  

修改后:


    int nosleep;  
    int timeout = mScreenOffTimeoutSetting;  
    if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {  
        timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin);  
    }  
    if (mUserActivityTimeoutOverrideFromWindowManager >= 0) {  
        timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromWindowManager);  
    }  
    nosleep = mScreenOffTimeoutSetting;  
    if(nosleep  < 0)  
    {  
        nosleep = mMaximumScreenOffTimeoutFromDeviceAdmin ;  
        return Math.max(nosleep, mMaximumScreenOffTimeoutFromDeviceAdmin);  
    }  
    return Math.max(timeout, MINIMUM_SCREEN_OFF_TIMEOUT);  

修改后就不会休眠了。可能还有其它方法让其用不休眠,有兴趣的人可以在看看源码找着看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值