您的位置:首页 > 移动开发 > Android开发

Android修改APN的配置

2016-01-25 10:14 537 查看
Andorid自身数据库中有很多默认的apn配置,如果要配置新的默认配置:

1、找到该文件:android-source/device/fsl/imx6/etc/apns-conf.xml

2、添加如下的格式的apn:

<apn carrier="Thailand TRUE 3GNET"
mcc="520"
mnc="04"
apn="internet"
user="true"
server=""
password="true"
mmsc=""
/>

3、因为RIL层在初始化拨号的时候会从sim卡中读取apn,然后把读出的apn和预先数据库中的apn对比,如果匹配就按照数据库的信息去拨号。
4、获取sim卡apn代码片段如下:

/**
* Based on the sim operator numeric, create a list for all possible
* Data Connections and setup the preferredApn.
*/
private void createAllApnList() {
mAllApns = new ArrayList<ApnSetting>();
String operator = mPhone.mIccRecords.getOperatorNumeric();
if (operator != null) {
String selection = "numeric = '" + operator + "'";
// query only enabled apn.
// carrier_enabled : 1 means enabled apn, 0 disabled apn.
selection += " and carrier_enabled = 1";
if (DBG) log("createAllApnList: selection=" + selection);

Cursor cursor = mPhone.getContext().getContentResolver().query(
Telephony.Carriers.CONTENT_URI, null, selection, null, null);

if (cursor != null) {
if (cursor.getCount() > 0) {
mAllApns = createApnList(cursor);
}
cursor.close();
}
}

if (mAllApns.isEmpty()) {
if (DBG) log("createAllApnList: No APN found for carrier: " + operator);
mPreferredApn = null;
// TODO: What is the right behaviour?
//notifyNoData(GsmDataConnection.FailCause.MISSING_UNKNOWN_APN);
} else {
mPreferredApn = getPreferredApn();
if (mPreferredApn != null && !mPreferredApn.numeric.equals(operator)) {
mPreferredApn = null;
setPreferredApn(-1);
}
if (DBG) log("createAllApnList: mPreferredApn=" + mPreferredApn);
}
if (DBG) log("createAllApnList: X mAllApns=" + mAllApns);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android