前言:
在前三篇中初步介绍了开机流程和STR流程,这里讲唤醒
Android STR研究之一-CSDN博客
Android STR研究之二-CSDN博客
Android STR研究之三-CSDN博客
唤醒
如上文所述,当唤醒的时候代码会继续往下执行
private void doHandleDeepSleep(boolean simulatedMode) {// keep holding partial wakelock to prevent entering sleep before enterDeepSleep call// enterDeepSleep should force sleep entry even if wake lock is kept.mSystemInterface.switchToPartialWakeLock();mHandler.cancelProcessingComplete();synchronized (mLock) {mLastSleepEntryTime = SystemClock.elapsedRealtime();}int nextListenerState;if (simulatedMode) {simulateSleepByWaiting();nextListenerState = CarPowerStateListener.SHUTDOWN_CANCELLED;} else {boolean sleepSucceeded = suspendWithRetries();if (!sleepSucceeded) {// Suspend failed and we shut down instead.// We either won't get here at all or we will power off very soon.return;}// We suspended and have now resumednextListenerState = CarPowerStateListener.SUSPEND_EXIT;}synchronized (mLock) {mIsResuming = true;// Any wakeup time from before is no longer valid.mNextWakeupSec = 0;}Slog.i(TAG, "Resuming after suspending");//恢复屏幕亮度mSystemInterface.refreshDisplayBrightness();//发送状态给vhalonApPowerStateChange(CpmsState.WAIT_FOR_VHAL, nextListenerState);}
此时给vhal发送的信号状态是(信号:VehicleProperty.AP_POWER_STATE_REPORT,信号值CarPowerStateListener.SUSPEND_EXIT)
Vhal会上报ON状态,正常使用