• [Android P][Network data][Notes1]PhoneSwitcher SUBSCRIPTION_CHANGED


    PhoneSwitcher to onEvaluate:
    PhoneSwitcher.mDefaultDataChangedReceiver.onReceive->EVENT_DEFAULT_SUBSCRIPTION_CHANGED->onEvaluate(REQUESTS_UNCHANGED, "defaultChanged")
    PhoneSwitcher.mSubscriptionsChangedListener.onSubscriptionsChanged->EVENT_SUBSCRIPTION_CHANGED->onEvaluate(REQUESTS_UNCHANGED, "subChanged")

    (other to onEvaluate??)

    onEvaluate to activate/deactivate:
    PhoneSwitcher.onEvaluate
        ->List<Integer> newActivePhones = new ArrayList<Integer>();
        ->for (DcRequest dcRequest : mPrioritizedDcRequests)
        ->int phoneIdForRequest = phoneIdForRequest(dcRequest.networkRequest);
        ->newActivePhones.add(phoneIdForRequest);
        ->if (newActivePhones.size() >= mMaxActivePhones) break;
        ->for (int phoneId = 0; phoneId < mNumPhones; phoneId++)
        ->if (newActivePhones.contains(phoneId) == false)
        ->deactivate->RIL.setDataAllowed(false)
        ->for (int phoneId : newActivePhones)
        ->activate->RIL.setDataAllowed(true)

    activate/deactivate to 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(serial, mSlotId, RIL_REQUEST_ALLOW_DATA, 1, BOOL_TO_INT(allow))
        ->android::addRequestToList->Ril.cpp->addRequestToList
        ->CALL_ONREQUEST->RIL_RadioFunctions->onRequest->...
    ->...->reference-ril.c.onRequest->RIL_REQUEST_ALLOW_DATA->RIL_onRequestComplete->RIL_Env->OnRequestComplete
    struct RIL_Env RilSapSocket::uimRilEnv = {
            .OnRequestComplete = RilSapSocket::sOnRequestComplete,
            .OnUnsolicitedResponse = RilSapSocket::sOnUnsolicitedResponse,
            .RequestTimedCallback = RIL_requestTimedCallback
    };
    ->...->RilSapSocket::sOnRequestComplete->onRequestComplete

  • 相关阅读:
    文件系统操作与磁盘管理
    文件打包与解压缩
    环境变量与文件查找
    Linux目录结构及文件基本操作
    vim3
    vim2
    vim1
    用户管理
    初识
    第一章
  • 原文地址:https://www.cnblogs.com/sxjzhjj/p/12293237.html
Copyright © 2020-2023  润新知