数据业务建立流程之常规APN参数的创建(原)

本文深入探讨了数据业务建立流程中的APN创建,特别是‘preferapn_no_update’参数的作用,并详细阐述了设置默认APN的过程。
摘要由CSDN通过智能技术生成
        区别于前面的紧急APN,这里的APN参数主要指常规的SIM卡APN参数,手机在上网时必须传递正确的APN参数给运营商才可以接入移动网络,而常规APN参数的创建是由监听器触发的。
        前面在DcTracker初始化过程中注册了大量监听器,其中有两个监听器可以触发APN的创建过程:1、SIM载入完毕;2、APN改变。这两个事件所导致的APN创建流程也都是类似的,分别是:
        【当SIM载入完毕时】,将会触发onRecordsLoaded():
        private void onRecordsLoaded() {
            mAutoAttachOnCreationConfig = mPhone.getContext().getResources().getBoolean(com.android.internal.R.bool.config_auto_attach_data_on_creation);
            //创建APN参数
            createAllApnList();
            setInitialAttachApn();
            if (mPhone.mCi.getRadioState().isOn()) {
                notifyOffApnsOfAvailability(Phone.REASON_SIM_LOADED);
            }
            //尝试发起数据业务
            setupDataOnConnectableApns(Phone.REASON_SIM_LOADED);
        }
        【当APN改变时】,将会触发onApnChanged():
        private void onApnChanged() {
            DctConstants.State overallState = getOverallState();
            boolean isDisconnected = (overallState == DctConstants.State.IDLE || overallState == DctConstants.State.FAILED);


            if (mPhone instanceof GSMPhone) {
                ((GSMPhone)mPhone).updateCurrentCarrierInProvider();
            }
            //创建APN参数
            createAllApnList();
            setInitialAttachApn();
            //清除旧的连接
            cleanUpAllConnections(!isDisconnected, Phone.REASON_APN_CHANGED);
            //尝试发起数据业务
            setupDataOnConnectableApns(Phone.REASON_APN_CHANGED);
        }
        从上面两个过程对比我们发现,他们都通过两个步骤进行APN的创建,分别是createAllApnList()和setInitialAttachApn(),他们的作用分别是创建APN和设置默认APN。

        下面分别来介绍这个过程。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值