Android--Pin流程,飞行模式相关流程总结【工作日记一】
Radio 对应相关的Log: <GET_SIM_STATUS APPSTATE_PIN MSimIccCardProxy: ACTION_SIM_STATE_CHANGED rease PIN Logcat对应的Log:
KeyguardUpdateMonitor:ACTION_SIM_STATE_CHANGEDKeyguardUpdateMonitor:handleSimStateChange:intentValue=PIN_REQUIMSimLockPatternKeyguardView:createUnlockScreenFor(SimPin);MSimLockPatternKeyguardView:Display SimUnlockScreen for sub:
KeyguardUpdateMonitor.java TelephonyIntents.ACTION_SIM_STATE_CHANGED SimArgs.fromIntent(intent) obtainMessage:MSG_SIM_STATE_CHANGED //334 Line handleSimStateChange((SimArgs) msg.obj); //211 Line onSimStateChanged(state, subscription); KeyguardViewMediator.java onSimStateChanged( , ); !isShowing() doKeyguardLocked( ) resetStateLocked( )
IccLockSettings.java getIccLockEnabled() IccCardProxy.java getIccLockEnabled() mUiccApplication.getIccLockEnabled() getPin1State() mPin1State return true/false
checkPin() atteptsRemaining = ITelephony.stub.asInterface(ServiceManager. checkService("phone")).getIccPin1RetryCount(); mHeaderText.setText(displayMessage);IccLockSettings.java tryChangeIccLockState() UiccCardLockEnabled setIccLockEnabled( , , ) RIL.java setFacilityLockForApp( , , , , , ) lockString = (lockState) ? "1":"0"; rr.mp.writeString(lockString);
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING); intent.putExtra("state", on); mContext.sendBroadcast(intent); PhoneWindowManager.java mGlobalActions.showDialog(KeyguardShowing, isDeviceProvisioned()); GlobalActions.java showDialog( , ); mAirplaneModeOn.updateState(mAirplaneState) mAdapter.notifyDataSetChanged(); PhoneStateListener mPhoneStateListener = new PhoneStateListener { mAirplaneModeOn.updateState(mAirplaneState); mAdapter.notifyDataSetChanged(); } onClick() mAdapter.getItem(which).onPress(); changeStateFromPress(nowon); ? State.TurningOn : State.TurningOff;