android APN解析
来源:互联网 发布:快乐宝拉 知乎 编辑:程序博客网 时间:2024/06/14 08:45
APN整理
前段时间,为公司项目添加APN设置功能。现在做一些整理,作为分享,作为笔记。
APN的字段
不同的手机,他们存放apn相关数据的字段是不一样的,这里表示出来的字段都是他们公有的部分。
publicclass APN {
publicStringid;
publicStringset; //我自己添加的,用户确认是否需要设置为默认
publicString name; //显示的名称
publicString apn; //接入点名称 cmwap/cmnet…….
publicString mcc; //国家编号
publicString mnc; //运营商编号
publicString numeric; //mcc+mnc运营商在全球上唯一标识
publicString user; //用户名
publicString password; //密码
publicString server; //服务
publicString proxy; //代理
publicString port; //端口
publicString mmsport; //短信端口
publicString mmsproxy; //短信代理
publicString mmsc;
publicString authtype;
publicString current; //当=“1”的时候,显示
publicString type; //类型
}
APN的存放路径
1. 查看全部的apn数据
public UricreateUri = Uri.parse("content://telephony/carriers");
2. 查看当前正在使用的apn数据
Uri preferUri=Uri.parse("content://telephony/carriers/preferapn");
APN的增加
/**
* 创建一个新的数据
*/
public UriaddNewApn(APN apn) {
Log.i("ApnHelper","执行增加操作");
ContentResolver contentResolver =context.getContentResolver();
ContentValues contentValues =new ContentValues();
contentValues.put("name", apn.getName());
contentValues.put("apn", apn.getApn());
contentValues.put("mcc", apn.getMcc());
contentValues.put("mnc", apn.getMnc());
contentValues.put("numeric", apn.getNumeric());
contentValues.put("proxy", apn.getProxy());
contentValues.put("port", apn.getPort());
contentValues.put("authtype", apn.getAuthtype());
contentValues.put("current", apn.getCurrent());
contentValues.put("type", apn.getType());
contentValues.put("user", apn.getUser());
contentValues.put("server", apn.getServer());
contentValues.put("password", apn.getPassword());
contentValues.put("mmsport", apn.getMmsport());
contentValues.put("mmsproxy", apn.getMmsproxy());
contentValues.put("mmsc", apn.getMmsc());
Uri newUri = contentResolver.insert(createUri, contentValues);
Log.i("ApnHelper","newUri.toString():" + newUri.toString());
return newUri;
}
APN的删除
/**
* 根据给定的id,删除某个apn
* @param id
* @return是否成功
*/
publicbooleandeleteApn(String id) {
boolean flag =true;
APN apn = new APN();
ContentValues contentValues =new ContentValues();
contentValues.put("current", apn.getCurrent());
ContentResolver contentResolver =context.getContentResolver();
try {
contentResolver.delete(createUri,"_id=?",new String[] { id });
Log.i("ApnHelper","执行删除操作");
} catch (NullPointerException e) {
//TODO: handle exception
e.printStackTrace();
flag =false;
}
return flag;
}
APN设置当前默认
/**
* 设置默认的APN
* @param id
*/
publicintsetDefault(int id) {
Log.i("ApnHelper","执行设置当前默认操作");
ContentResolver contentResolver =context.getContentResolver();
ContentValues contentValues =new ContentValues();
contentValues.put("apn_id", id);
int rows = contentResolver.update(preferapnUri, contentValues, null,null);
Log.i("ApnHelper","设置当前值");
return rows;
}
关于APN的流程
关于设置当前默认的apn,应该在比较两个list的时候,将需要设置为当前默认使用的apn保存给一个对象,然后在修改的时候,重新得到所有可见的apn,遍历他们,找到这个apn的id,最后设置当前默认的apn.
觉得这个流程图忒不完整了。但是完整的图也没弄,关于设置当前默认的部分上面根本没有体现,在完成这部分功能的时候,整个逻辑的判断的难点大部分就是在设置默认这一块。
转载地址:http://blog.csdn.net/zidan_2011/article/details/7704865
- android APN解析
- 【Android 数据业务解析】APN参数创建
- android apn
- Android APN
- Android APN
- Android APN设置 获取APN列表
- Android APN设置 获取APN列表
- android 单卡apn 双卡双待apn设置
- Android APN设置 获取APN列表
- Android对于APN
- android APN -电信
- Android 编程设置 APN
- ANDROID的APN设置
- android APN -电信
- android:apn相关资料
- Android对于APN
- android---APN切换
- android 获取apn
- Javascript单元测试框架Qunit和Jasmine的比较
- /var/run/yum.pid 已被锁定 解决办法
- Nginx Load Balancing
- 模拟退火解决TSP问题
- 通过java反射机制获取该类的所有属性类型、值。
- android APN解析
- 安装 Ubuntu 14.04 之后要做的一些事
- css3时钟
- 目标检测的图像特征提取之Haar特征
- spring自动扫描的问题
- 安装Android studio出现'tools.jar' seems to be not in Android Studio classpath的解决方法
- Android 自定义Dialog二次打开报错问题解决
- Java线程池
- Linux下的多进程编程初步(转载)