[Notes1]DcTracker setDataProfile 判断APN modemCognitive and requestNetwork set mApnSetting

本文详细介绍了Android中DcTracker如何根据APN的modemCognitive属性设置数据配置,并在请求网络时选择合适的APnSetting。通过分析setDataProfile和requestNetwork过程,揭示了APN_TYPE_DUN的处理逻辑,涉及RadioImpl、RIL请求及DataProfile的创建。
摘要由CSDN通过智能技术生成

DcTracker setDataProfile 判断APN modemCognitive and requestNetwork set mApnSetting

一、setDataProfile(apn.modemCognitive->??aosp apn not invoke setDataProfilesAsNeeded??):
DcTracker.setDataProfilesAsNeeded
    ->for (ApnSetting apn : mAllApnSettings) {
    ->if (apn.modemCognitive) {
    ->...->RIL.setDataProfile->RIL_REQUEST_SET_DATA_PROFILE->...->ril_service.cpp
->RadioImpl::setDataProfile->RIL_REQUEST_SET_DATA_PROFILE->...->reference-ril.c.onRequest->??

Telephony.Carriers.MODEM_COGNITIVE:
        /**
         * Is the apn setting to be set in modem
         * <P>Type: INTEGER (boolean)</P>
         *@hide
         */
        public static final String MODEM_COGNITIVE = "modem_cognitive";

(setModemCognitive:
DevicePolicyManager.getOverrideApns->DevicePolicyManagerService.getOverrideApns
->getOverrideApnsUnchecked->ApnSetting.makeApnSetting->setModemCognitive)


二、requestNetwork set mApnSetting(from APN_TYPE_DUN/mAllApnSettings):
DcTracker.requestNetwork->...->trySetupData
    ->int radioTech = mPhone.getServiceState().getRilDataRadioTechnology();
    ->ArrayList<ApnSetting> waitingApns =
                        buildWaitingApns(apnContext.getApnType(), radioTech);
->...(APN_TYPE_DUN/mPreferredApn/mAllApnSettings(
        ->for (ApnSetting apn : mAllApnSettings) {
        ->if (apn.canHandleType(requeste

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值