android 4.2 休眠,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.修改frameworks/base/services/java/com/android/server/power/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);

}

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);

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、付费专栏及课程。

余额充值