buildWaitingApns()的时候,如果申请的数据业务类型是dun类型,那么就通过下面的方法来获取dun apn.
private ArrayList<ApnSetting> buildWaitingApns(String requestedApnType, int radioTech) {
if (DBG) log("buildWaitingApns: E requestedApnType=" + requestedApnType);
ArrayList<ApnSetting> apnList = new ArrayList<ApnSetting>();
if (requestedApnType.equals(PhoneConstants.APN_TYPE_DUN)) {
ApnSetting dun = fetchDunApn();
if (dun != null) {
apnList.add(dun);
if (DBG) log("buildWaitingApns: X added APN_TYPE_DUN apnList=" + apnList);
return apnList;
}
}
.............................
}
其中的fetchDunApn()里面可以做如下需求,
1.假如数据库里面有Dun apn,那么可以在mAllApnSettings里面取对应的Dun APN进行返回.
2.如果不做1中的定制,那么将通过下面的方式获得DUN APN.
Settings.Global.getString(mResolver, Settings.Global.TETHER_DUN_APN);
3.如果1,2都不满足需求那么通过下面方法获得DUN APN.
mPhone.getContext().getResources().getStringArray(R.array.config_tether_apndata);