说明:

(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流程分析

apn的流程分析及相关文件
相关文件作如下简单说明:
android2.3.4_GB_T34H\build\core\main.mk
--从该文件[核心Makefile文件]中可以看出有关apn设置的xml文件
摘录如下:
# Install an apns-conf.xml file if one's not already being installed.
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
--主要用于生成system/etc/apns-conf.xml文件,生成过程本质上就是原文拷贝(用于sdk模拟)

apns.xml -- android2.3.4_GB_T34H/frameworks/base/core/res/res/xml/apns.xml
--该文件实际上在apn的设置方面没有实际意义,然而在android apn设置的逻辑方面却很重要,尤其是里面的version的值。

apns-conf.xml --android2.3.4_GB_T34H/out/target/product/generic/system/etc/apns-conf.xml
--该内容最终打包到system.ext4中:

3, 效果查看:

(1)进入terminate

adb shell
cat /system/etc/apns-conf.xml 
注:此文件就是来源于此!!
TelephonyProvider.java -- android2.3.4_GB_T34H/packages/providers/TelephonyProvider/src/com/android/providers/telephony/TelephonyProvider.java
--该class主要用于APN的设置,由于源码提供的不符合定制要求,所以要手动修改!
但是修改最终目的是保证在数据库version更新后,能够及时更新维护APN的数据库表内容!
具体该类如何修改,下文会阐述!
首先保证成功运行了Emulator或开发板,查看APN所维护的数据,操作如下:
# adb shell
# cd /data/data/com.android.providers.telephony/databases
# sqlite3 telephony.db
sqlite> .dump carriers

4,程序中的实现(参考文章中说要改动java的代码,我这里没有改动,也可以用)

(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,上网设定自动开启的话,用户不注意的情况下,会产生流量。所以这个功能要用户使用的情况下开启。所以要设定默认为关闭

(1),“设置--无线网络--移动网络--已启用数据”这个选项如果选到了就可以上网,不选不能上网,所以我们默认这个选项关闭。
在程序:android2.3.4_GB_T34H\frameworks\base\services\java\com\android\server\ConnectivityService.java中
[java] view plaincopy
  1. /**
  2. * @see ConnectivityManager#getMobileDataEnabled()
  3. */
  4. public boolean getMobileDataEnabled() {
  5. enforceAccessPermission();
  6. boolean retVal = Settings.Secure.getInt(mContext.getContentResolver(),
  7. //Settings.Secure.MOBILE_DATA, 1) == 1;
  8. Settings.Secure.MOBILE_DATA, 0) == 1;//leilei  ++10.25
  9. if (DBG) Slog.d(TAG, "getMobileDataEnabled returning " + retVal);
  10. return retVal;
  11. }

Settings.Secure.MOBILE_DATA, 1) == 1;的情况下,选项默认为开, Settings.Secure.MOBILE_DATA, 0) == 1;时,选项默认为关闭。

(2),实现效果如下:

Android APN的设置问题 默认“已起用数据” 关闭相关推荐

  1. Android APN的设置问题

    Android APN的设置问题 推荐 原创yqmiao2010-09-08 16:23:20评论(16)24325人阅读 1.问题的引入 在android源码,成功执行了make 和 make sd ...

  2. Android 各版本 设置 USB 默认连接 MTP 模式 ( Android 6.0+ )

    Android 各版本 设置 USB 默认连接 MTP 模式 ( Android  6.0+ ) Android 6.0 以及之后的版本,google默认设计直接配置USB连接模式为 :仅充电: 项目 ...

  3. Android Studio简单设置

    2019独角兽企业重金招聘Python工程师标准>>> Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面 ...

  4. 【转】Android Studio简单设置

    原文网址:http://ask.android-studio.org/?/article/14 Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以 ...

  5. Java 和 Android系统环境变量设置

    Java环境变量设置 JAVA_HOME D:\Program Files\Java\jdk1.7.0_06 ClassPath .;D:\Program Files\Java\jdk1.7.0_06 ...

  6. mysql的text的默认值,mysql给text设置一个默认值(干货)

    这周有个需求里面原先是用redis的,但是后面经同事介绍说明,决定还是用mysql,当时想在表里面加一个text字段,但是考虑到程序其他地方会不会有对该表的插入操作,所以不经思索的就说给text字段加 ...

  7. android设置成默认应用程序,在Android中设置和取消设置默认应用

    我有一个尝试"进入信息亭模式"的应用程序,但是我只希望它仅出现在一个Activity上.在修改了一些控件之后,我想到了Intent.createChooser(). 我想做的是,一 ...

  8. android设置为默认短信应用,如何在Android上设置默认短信应用 | MOS86

    与iOS不同,Android允许您使用第三方应用来执行基本功能,例如发短信. 这是您可以在Android手机上设置新的默认短信应用的方法. 首先,您需要安装要使用的替换短信应用程序. Play商店上有 ...

  9. Android APN设置

    Android APN设置 概述 Apn设置,即"接入点名称"设置,Apn的全称是Access PointName,是用户在通过手机上网时必须配置的一个参数,它决定了您的手机通过哪 ...

最新文章

  1. nable to execute dex: Multiple dex files define Lcom/chinaCEB/cebActivity/R
  2. 弱电工程项目综合布线估算方法和公式
  3. Redis操作hash类型
  4. java.lang.UnsupportedClassVersionError: Bad version number in .class file异常
  5. 【推荐】工业互联网资料合集
  6. 走迷宫小游戏课设(C语言)
  7. vml时序表_VML代码分析是怎么分析的
  8. 支持P2P传输的M3U8播放器
  9. Apache Storm 官方文档 —— Trident API 概述
  10. 安装cuda后却没有CUDA Samples怎么办?
  11. 关于我的专业(niit软件工程方向)
  12. 计算机视觉之三维重建——深入浅出SFM系统与SLAM系统的核心算法
  13. 2月14日机构龙虎榜和知名游资操作情况
  14. 链路追踪google dapper论文 中文
  15. zCloud补齐某省移动智慧中台dbPaaS能力“短板”
  16. Python冲击省一蓝桥杯 DFS集锦
  17. ValueError: module functions cannot set METH_CLASS or METH_STATIC 的快速处理方法
  18. 解决应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。
  19. Smart210学习记录(十二) 之块设备
  20. 设置EXCEL的默认打印机

热门文章

  1. lyh-前端 HTML 、 CSS 和 JS 的理解
  2. 银利富提供大量最新市场火爆的虚拟产品
  3. c语言如何编程出声音,C/C++知识点之C语言播放声音最简单的两种方法
  4. python录音文件降噪_Python谱减法语音降噪实例
  5. Masters of Doom
  6. raid数据恢复_EMC FC AX-4存储崩溃恢复
  7. ACDSee V3.1 绿色免安装经典版
  8. android查找本地图片数据库,Android 图片数据库那些事儿
  9. RCA issue
  10. JAVA中文字符编码问题详解