APN参数在前面《
数据业务建立流程之常规APN参数的创建》一文中已经都被创建完毕并存入mAllApnSettings的数组中,但是这些APN参数默认都是没有被Enable的,
只有当APN被Enable之后,该APN才可以被使用,下面我们就来看如何将一个APN参数激活。
APN的Enable是通过TelephonyNetworkFactory中的needNetworkFor()方法触发的,我们在《 网络连接评分机制之NetworkFactory》文章中介绍过,当当前网络的评分比其他网络高时,就会通过needNetworkFor()方法触发当前网络的建立。比如当前WIFI断开时,如果发现数据网络是打开的,此时就会通过该方法激活数据流量,从而实现从WIFI到数据的转换过程。
而当needNetworkFor()被触发时,就会引发APN的Enable过程:
APN的Enable是通过TelephonyNetworkFactory中的needNetworkFor()方法触发的,我们在《 网络连接评分机制之NetworkFactory》文章中介绍过,当当前网络的评分比其他网络高时,就会通过needNetworkFor()方法触发当前网络的建立。比如当前WIFI断开时,如果发现数据网络是打开的,此时就会通过该方法激活数据流量,从而实现从WIFI到数据的转换过程。
而当needNetworkFor()被触发时,就会引发APN的Enable过程:
protected void needNetworkFor(NetworkRequest networkRequest, int score) {
//根据网络需求寻找合适APN
ApnContext apnContext = apnContextForNetworkRequest(networkRequest);