阅读:5553回复:1

android自动待机sleep问题

楼主#
更多 发布于:2019-08-08 19:35
问题:最近客户反馈长时间未操作自动进入待机功能不起作用。
复现:
比如我设置的5分钟无操作待机,在某些播放界面下,确实不会待机。
在一些普通的APP下是可以正常待机的。
-----------------------------------------------------------------------------------------------
经过排查发现,这些播放类的APP都会设置屏幕常亮,一般的设置方法就是:

@Override  
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.activity_main);  
  
    PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE);  
    if (powerManager != null) {  
        mWakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "WakeLock");  
    }  
}  

@Override  
protected void onResume() {  
    super.onResume();  
    if (mWakeLock != null) {  
        mWakeLock.acquire();  
    }  
}  
  
@Override  
protected void onPause() {  
    super.onPause();  
    if (mWakeLock != null) {  
        mWakeLock.release();  
    }  
}  

猜测就是这个原因导致的无法进入sleep状态,所以在PMS中修改如下,保证在这种情况下,一旦到了timeout的时间,也要强制进入sleep状态:
--- a/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
@@ -2211,7 +2211,7 @@ public final class PowerManagerService extends SystemService
     private boolean isBeingKeptAwakeLocked() {
         return mStayOn
                 || mProximityPositive
-                || (mWakeLockSummary & WAKE_LOCK_STAY_AWAKE) != 0
+                /*|| (mWakeLockSummary & WAKE_LOCK_STAY_AWAKE) != 0  modify by mark*/
                 || (mUserActivitySummary & (USER_ACTIVITY_SCREEN_BRIGHT
                         | USER_ACTIVITY_SCREEN_DIM)) != 0
                 || mScreenBrightnessBoostInProgress;

make systemimage编译完成,将out目录下的services.jar,services.jar.prof,services.art,services.odex,services.vdex拷贝到板子相对应的目录,确认问题已经修复好。在播放界面下到达timeout时间也能正确的进入待机,搞定。

最新喜欢:

zhaoyf13zhaoyf...
If you have nothing to lose, then you can do anything.
沙发#
发布于:2019-08-09 09:45
优秀 不用解释
[url]http://190.lsal.cn/195/1329.gif?0728100424873[/url]
游客

返回顶部