onEvaluateにPhoneSwitcher:
PhoneSwitcher.mDefaultDataChangedReceiver.onReceive-> EVENT_DEFAULT_SUBSCRIPTION_CHANGED-> onEvaluate(REQUESTS_UNCHANGED、 "defaultChanged")
PhoneSwitcher.mSubscriptionsChangedListener.onSubscriptionsChanged-> EVENT_SUBSCRIPTION_CHANGED-> onEvaluate( "subChanged" REQUESTS_UNCHANGED)
(onEvaluate ??に他)
onEvaluateに有効化/無効化:
PhoneSwitcher.onEvaluate
- >一覧<整数> newActivePhones =新しいのArrayList <Integer型>();
- >(DcRequest dcRequest:mPrioritizedDcRequests)のための
- > INT phoneIdForRequest = phoneIdForRequest(dcRequest.networkRequest)。
- > newActivePhones.add(phoneIdForRequest)。
- >もし(newActivePhones.size()> = mMaxActivePhones)ブレーク。
- >のための(INT phoneidなど= 0; phoneidなど<mNumPhones; phoneidなど++)
- > IF(newActivePhones.contains(phoneidなど)==偽)
- > deactivate-> RIL.setDataAllowed(偽)
- >のための(INT phoneidなど:newActivePhones)
- > activate-> RIL.setDataAllowed(真)
有効化/無効化DcTracker.requestNetworkへ:
mActivePhoneRegistrants notifyRegistrants:
PhoneSwitcher.activate / deactivate-> mActivePhoneRegistrants [phoneidなど] .notifyRegistrants-> TelephonyNetworkFactory.EVENT_ACTIVE_PHONE_SWITCH-> onActivePhoneSwitch
TelephonyNetworkFactory.onActivePhoneSwitch / onDefaultChange-> applyRequests-> DcTracker.requestNetwork - > ...
setDataAllowed:
RIL.setDataAllowed-> RIL_REQUEST_ALLOW_DATA-> IRadio.setDataAllowed - > ...-> ril_service.cpp-> RadioImpl :: setDataAllowed-> dispatchInts(シリアル、mSlotId、RIL_REQUEST_ALLOW_DATA、1、BOOL_TO_INT(許可))
- >アンドロイド。 :addRequestToList-> Ril.cpp-> addRequestToList
- > CALL_ONREQUEST-> RIL_RadioFunctions-> onRequest - > ...
- > ...->参照ril.c.onRequest-> RIL_REQUEST_ALLOW_DATA-> RIL_onRequestComplete-> RIL_Env-> OnRequestComplete
構造体RIL_Env RilSapSocket :: uimRilEnv = {
.OnRequestComplete = RilSapSocket :: sOnRequestComplete、
.OnUnsolicitedResponse = RilSapSocket :: sOnUnsolicitedResponse、
.RequestTimedCallback = RIL_requestTimedCallback
}。
- > ...-> RilSapSocket :: sOnRequestComplete-> onRequestComplete