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 性能优化】应用启动优化 ( 安卓应用启动分析 | Launch
  3. Android 5.1 Settings模块源码分析
  4. Android aapt实现资源分区(补充携程aapt源码)
  5. 基于MAC Android 8.1源码下载编译阅读
  6. Android屏幕锁定实例源码详解教程一
  7. 如何编译Android内核源码
  8. Android ImageView 的scaleType属性
  9. Android属性 bulid.prop等

随机推荐

  1. SQL Server 触发器详情
  2. SQL Server 2017无法连接到服务器的问题
  3. 使用SQL SERVER存储过程实现历史数据迁移
  4. SQL Server2017使用IP作为服务器名连接服
  5. DataGrip 格式化SQL的实现方法(自定义Sql
  6. 万能密码的SQL注入漏洞其PHP环境搭建及防
  7. Android(安卓)异步更新UI----AsyncTask
  8. Android(安卓)View详解
  9. Android(安卓)开发中使用 SQLite 数据库
  10. Android(安卓)开发之旅:又见Hello World!