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()函数

  修改前:

  1. private int getScreenOffTimeoutLocked() {  
  2.         int timeout = mScreenOffTimeoutSetting;  
  3.         if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {  
  4.             timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin);  
  5.         }  
  6.         if (mUserActivityTimeoutOverrideFromWindowManager >= 0) {  
  7.             timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromWindowManager);  
  8.         }  
  9.          
  10.         return Math.max(timeout, MINIMUM_SCREEN_OFF_TIMEOUT);  
  11.     }  
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);
    }
修改后:

  1. int nosleep;  
  2. int timeout = mScreenOffTimeoutSetting;  
  3. if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {  
  4.     timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin);  
  5. }  
  6. if (mUserActivityTimeoutOverrideFromWindowManager >= 0) {  
  7.     timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromWindowManager);  
  8. }  
  9. nosleep = mScreenOffTimeoutSetting;  
  10. if(nosleep  < 0)  
  11. {  
  12.     nosleep = mMaximumScreenOffTimeoutFromDeviceAdmin ;  
  13.     return Math.max(nosleep, mMaximumScreenOffTimeoutFromDeviceAdmin);  
  14. }  
  15. 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);
修改后就不会休眠了。可能还有其它方法让其用不休眠,有兴趣的人可以在看看源码找着看。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值