关键字:android APN的设置问题 SDK APN设定 默认“已起用数据” 关闭
说明:
(1),参考:http://myqdroid.blog.51cto.com/2057579/389134
(2),应用的到程序
android2.3.4_GB_T34H\build\core\main.mk
android2.3.4_GB_T34H\development\data\etc\apns-conf.xml
android2.3.4_GB_T34H\development\data\etc\apns-conf_sdk.xml
1,APN的定义:
APN(Access Point Name),即“接入点名称”,是您在通过手机上网时必须配置的一个参数,它决定了您的手机通过哪种接入方式来访问网络,用来标识GPRS的业务种类,目前分为两大类:CMWAP/UNIWAP/3GWAP(通过GPRS访问WAP业务)、CMNET/UNINET/3GNET(除了WAP以外的服务目前都用CMNET,比如连接因特网等)。
2,android中APN流程分析
ifeq (,$(filter %:system/etc/apns-conf.xml, $(PRODUCT_COPY_FILES)))
PRODUCT_COPY_FILES += \
development/data/etc/ apns-conf_sdk.xml :system/etc/apns-conf.xml
ifeq ($(filter eng tests,$(TARGET_BUILD_VARIANT)),)
$(warning implicitly installing apns-conf_sdk.xml)
endif
endif
apns-conf_sdk.xml --android2.3.4_GB_T34H/development/data/etc/apns-conf_sdk.xml
apns.xml -- android2.3.4_GB_T34H/frameworks/base/core/res/res/xml/apns.xml
apns-conf.xml --android2.3.4_GB_T34H/out/target/product/generic/system/etc/apns-conf.xml
(1)进入terminate
# cd /data/data/com.android.providers.telephony/databases
(1)打开android2.3.4_GB_T34H\development\data\etc\apns-conf.xml
对应的名称功能为:这里面要注意红色标出的值。
name | 3g | 名称 |
apn | 3gnet | APN |
proxy | not set | 代理 |
port | not set | 端口 |
username | not set | 用户名 |
password | not set | 密码 |
server | not set | 服务 |
mmsc | not set | |
mms proy | not set | 彩信代理 |
mms prot | not set | 彩信端口 |
mmc | 460 | |
mnc | 01 | |
authentication | ||
apn type | defaul | APN类型 |
apn protocol | ipv4 | APN协议 |
对应我们要加入的代码部分:
<!--modify by xu_bin -->
<apn carrier="3g"
mcc="460"
mnc="01"
apn="3gnet"
user=""
password=""
server=""
mmsproxy=""
mmsport=""
mmsc=""
type="default"
/>
(2),在编译程序前,删除android2.3.4_GB_T34H\out\target\product\smdkc110\system\etc\apns-conf.xml
(3),编译程序,烧录,下面是我们实现的效果:不用手动设定,自动加入APN上网设定。
5,上网设定自动开启的话,用户不注意的情况下,会产生流量。所以这个功能要用户使用的情况下开启。所以要设定默认为关闭
/**
* @see ConnectivityManager#getMobileDataEnabled()
*/
public boolean getMobileDataEnabled() {
enforceAccessPermission();
boolean retVal = Settings.Secure.getInt(mContext.getContentResolver(),
//Settings.Secure.MOBILE_DATA, 1) == 1;
Settings.Secure.MOBILE_DATA, 0) == 1;//leilei ++10.25
if (DBG) Slog.d(TAG, "getMobileDataEnabled returning " + retVal);
return retVal;
}
Settings.Secure.MOBILE_DATA, 1) == 1;的情况下,选项默认为开,
Settings.Secure.MOBILE_DATA, 0) == 1;时,选项默认为关闭。