1、简单说明 上一篇博文 http://myqdroid.blog.51cto.com/2057579/389134已对APN的配置作了较为详细的说明 ,可是我想有些读者对为啥要提前在源码中配置APN及成功配置后有啥效果较为迷惑,同时我想对在创建一个APN时的注意之处作出说明。 2、为啥配置APN及配置效果 如果你用的MOTO或HTC的Android手机,那么在你插入3G SIM卡以后,进入APN设置界面,手机会自动为你提供好多APN选项;这些不是Google提供的,而是这些厂商在定制自己的Android手机时提供的;如果这些厂商没有提供这些的话,那么一条APN信息都不会出现的,如果那样就需要用户自己配置APN了,若配置不当就无法连接3G网络了。 3、成功配置后,Settings 有关APN源码分析 0)此处我的版本为android 2.2 1) 所涉及的源文件 $ANDROID_SRC_PATH/packages/apps/Settings/src/com/android/settings/ApnSettings.java 2) 149行 android.os.SystemProperties.get(xxx_NUMERIC, "") --1)该语句的作用是读取SIM卡的numeric,模拟器默认是310260 --2) numeric值,它是由mcc与mnc拼接而成的,其中mcc是国家码,mnc是供应商码,从而numeric对某一个国家的某一个供应商而言是唯一的,例如:中国移动3gnet 460+02,中国联通3gnet 460+01 --3) 任一时刻,只能看到某一SIM卡所对应的供应商的APN设置,双卡双待模式的机型也是如此的 3、apn的属性问题 1) 一个正确的China Unicom 3gnet <apn carrier="China Unicom"
apn="3gnet"
proxy=""
port=""
user=""
password=""
server=""
mmsc=""
mcc="460"
mnc="01"
mmsproxy=""
mmsport=""
type=""
/> 2) 其中有些属性是必须要设置的,即使是赋空字符串! eg: mmsproxy="" mmsport="" type="" 如果你没有设置的话,那么数据库中将给字段设为NULL,从而连接就会出错,需要说明的是我的MID开发板是这样的。 3) 至于哪些值必须设,以及如何设置请看android的有关源码 eg: TelephonyProvider.java中的方法: private ContentValues getRow(XmlPullParser parser) { ... String mmsproxy = parser.getAttributeValue(null, "mmsproxy");
if (mmsproxy != null) {
map.put(Telephony.Carriers.MMSPROXY, mmsproxy);
}
String mmsport = parser.getAttributeValue(null, "mmsport");
if (mmsport != null) {
map.put(Telephony.Carriers.MMSPORT, mmsport);
}
map.put(Telephony.Carriers.MMSC, parser.getAttributeValue(null, "mmsc"));
String type = parser.getAttributeValue(null, "type");
if (type != null) {
map.put(Telephony.Carriers.TYPE, type);
} ... }

更多相关文章

  1. Android(安卓)打造任意层级树形控件 考验你的数据结构和设计
  2. Android及Robotium学习总结【环境变量,真机调试及根据id模拟按键
  3. Android实用视图动画及工具系列之四:多状态CheckBox,可设置大小尺
  4. Android(安卓)Canvas类介绍和Android(安卓)Draw Rect 坐标图示
  5. Linux文件的特殊权限位SUID、SGID作用及编程设置/读取
  6. Ubuntu下android学习——(2)Android系统构架分析和应用程序目录结
  7. Android(安卓)设置页面的设计
  8. android对话框(非速成)
  9. 为什么我的Android(安卓)Studio没有Android(安卓)SDK选项

随机推荐

  1. dom元素的增删改查
  2. [DUBBO] publishProvider interfaceName
  3. 通过lua将nginx请求状态码转变为自定义状
  4. JavaScript注释及命名规范
  5. 反射机制
  6. autofac for mvc
  7. 【等待事件】日志类 等待事件(4.5)--log fi
  8. 【等待事件】日志类 等待事件(4.4)--log bu
  9. 【等待事件】System I/O类 等待事件(3.1)--
  10. netfilter与iptables表规则建立