+++ b/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java@@ -4708,7 +4708,7 @@public class PhoneWindowManager implements WindowManagerPolicy { public void screenTurnedOff() { if (DEBUG_WAKEUP) Slog.i(TAG, "Screen turned off...");- updateScreenOffSleepToken(tr...
}else{//如果当前时间>nextTimeout,此时有两种情况,要么进入Dim要么进入Sleep//将上次用户活动时间+灭屏时间赋值给nextTimeout,如果该值大于当前时间,则说明此时应该处于Dim状态//因此将标记mUserActivitySummary为USER_ACTIVITY_SCREEN_DIMnextTimeout = mLastUserActivityTime + screenOffTimeout;if(now < nextTimeout...
当power键灭屏时,会在PhoneWindowManager中处理按键事件后,调用到PMS的gotoSleep()进行灭屏处理,下面直接看看PhoneWindowManger中对Power键灭屏的处理以及和PMS的交互。 在按...
final int sleepTimeout = getSleepTimeoutLocked(); //获取休眠时长,在Settings中设置的值 final int screenOffTimeout = getScreenOffTimeoutLocked(sleepTimeout); //获取Dim时长,由休眠时长剩Dim百分比得到 final int screenDimDuration = getScreenDimDurationLocked(screenOffTimeout); //用户活动是否由Windo...
Step1:先看第一次开机的加载锁屏的过程,通过PhoneWindowManager.java这个类的systemReady()这个方法,当系统开机准备好的情况下会调用这个方法,如下: public void systemReady() { if (mKeyguardMediator != null) { // tell the keyguard mKeyguardMediator.onSystemReady(); ...
5.Blocking screen on until流程 1.按键到power ap层开始是从PhoneWindowManager接收到home key event,然后一系列到PowerManagerService wakeup 要了解具体流程可以添加callback或者查看参考Link new Exception("print stack").printStackTrace(); PowerManagerService: |---com.android.server.power.PowerManagerService.wa...
ViewConfiguration.get(mContext).getDeviceGlobalActionKeyTimeout()); } } else { //这个方法,可以放在其他按键的down事件中,也可以起到唤醒屏幕的作用 //当然也可以用PowerManager.ACQUIRE_CAUSES_WAKEUP|PowerManager.SCREEN_DIM_WAKE_LOCK 结合亮屏
privatevoidpowerPress(longeventTime,booleaninteractive,intcount){ if(mScreenOnEarly && !mScreenOnFully) { Slog.i(TAG,"Suppressed redundant power key press while " +"already in the process of turning the screen on."); return; } if(count ==2) { ...
conn = new ServiceConnection() { //...省略部分代码 if (mContext.bindServiceAsUser(serviceIntent, conn,Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE_WHILE_AWAKE,UserHandle.CURRENT)) {mScreenshotConnection = conn;mHandler.postDelayed(mScreenshotTimeout, 10000); }} 先看 SYS...
1.给mHandler.postDelayed(mScreenLockTimeout, mLockScreenTimeout);加个判断。 //frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager.javaprivatevoidupdateLockScreenTimeout(){synchronized(mScreenLockTimeout){finalbooleanenable=!mAllowLockscreenWhenOnDisplays.isEmpty()&&mDefaultDispla...