public class ApnSetting extends Activity {
String TAG = "APNSetting";
//创建新APN时和查找APN列表时使用的URI
private Uri createApnUri = Uri.parse("content://telephony/carriers");
//设置默认接入点时使用的URI
private Uri preferapnUri = Uri.parse("content://telephony/carriers/preferapn");
private TextView textView = null;
private Button button = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.Button01);
button.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
createApn();
showApnList();
}
});
textView = (TextView) findViewById(R.id.TextView01);
}
protected void createApn() {
// TODO Auto-generated method stub
ContentValues values = new ContentValues();
values.put("name", "CMCC CMWAP_test");
values.put("apn", "CMWAP_test");
values.put("proxy", "192.168.1.199");
values.put("port", "83");
/**
* 在真机上使用
*/
// values.put("mcc", "310");
// values.put("mnc", "995");
// values.put("numeric", "310995");
/**
* 在模拟器上使用
*/
values.put("mcc", "310");
values.put("mnc", "260");
values.put("numeric", "310260");
Uri iuri = getContentResolver().insert(createApnUri, values);
this.textView.setText("getSchema:"+iuri.getScheme()+"/getPath:"+iuri.getPath());
int id = showApnInfo(iuri);
setDefaultApn(id);
}
/**
* 设置默认APN
* @param id
*/
private void setDefaultApn(int id) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
ContentValues cv = new ContentValues();
cv.put("apn_id", id);
try {
cr.update(preferapnUri, cv, null, null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 显示APN信息
* @return
*/
private int showApnInfo(Uri uri) {
// TODO Auto-generated method stub
String text = "";
int id = -1;
Cursor c = this.getContentResolver().query(uri, null, null, null, null);
if(c!=null){
int colCount = c.getColumnCount();
int idIndex = c.getColumnIndex("_id");
c.moveToFirst();
id = c.getShort(idIndex);
for(int j = 0;j<colCount;j++){
text+=c.getString(j)+"|";
}
c.close();
}
return id;
}
private void showApnList() {
// TODO Auto-generated method stub
Cursor c = this.getContentResolver().query(createApnUri, null, null, null, null);
if(c!=null){
int rowCount = c.getCount();
int colCount = c.getColumnCount();
c.moveToFirst();
for(int i = 0;i<rowCount;i++){
for(int j = 0;j<colCount;j++){
Log.d(TAG, c.getColumnName(j)+"|||"+c.getString(j));
}
c.moveToNext();
}
c.close();
}
}
}
分享到:
相关推荐
总的来说,Android端APN实现module是一个涉及系统权限、数据库操作、网络连接管理等多个方面的技术实现,开发者需要具备扎实的Android基础和良好的安全意识来完成这个功能。通过这个模块,我们可以为用户提供更便捷...
本项目"android中的APN开发"显然是一个教学或示例应用,名为"MyApnDemo",旨在教给开发者如何在Android平台上创建、修改和管理APN设置。通过这个应用,开发者可以学习如何编写代码来实现以下功能: 1. **读取APN...
Android APN 开发流程分析是指 Android 操作系统中数据连接的实现过程,主要涉及到数据连接的建立、维护和管理。以下是 Android APN 开发流程分析的关键知识点: 1. 数据连接流程分析 Android 的数据连接是基于 ...
### Android的APN开发源码分析 #### 一、Android数据连接原理 Android的数据连接机制主要是基于PPP(Point-to-Point Protocol)的方式实现的。PPP协议是一种广泛使用的串行链路通信协议,它允许用户通过拨号或其他...
// 获取APN管理器 TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); List<PhoneNumberUtils> apns = tm.getAllCellInfo(); // 遍历APN列表 for (PhoneNumberUtils apn : apns) { ...
APN(Access Point Name,接入点名称)是移动设备访问互联网时必须配置的重要参数之一。它不仅决定了用户通过何种接入方式访问互联网,而且还关联着一系列的网络配置信息,包括IP地址类型、域名、认证方式等。对于...
`toggleMobileData`方法需要获取到系统的APN管理服务,并调用其提供的接口来开关数据连接。这通常涉及到权限请求、反射调用,因为直接操作APN设置不是公开的API。以下是一个简化的示例: ```java private void ...
综上所述,"Android APN切换程序"是一个实用工具,它简化了Android设备上APN设置的管理,而压缩包中的文件则反映了该程序的开发结构和文档资料。对于Android用户和开发者来说,了解并掌握APN设置和此类工具的使用,...
"MyApnDemo"可能是一个自定义的应用程序,用于帮助用户更直观地管理和更改APN设置。 总的来说,正确设置APN对保持Android设备的网络连接至关重要。对于特定型号的设备或特定的网络环境,理解并正确操作APN设置能够...
在Android平台上,APN(Access Point Name)通常指的是网络连接的接入点,它定义了设备如何连接到互联网。然而,当我们谈论"Android APN消息推送"时,这指的是利用APN机制实现应用间的即时消息传递服务。在这个项目...
"AS 工程自定义 APN 实现.rar"提供的就是一个Android Studio项目,旨在帮助开发者创建和管理自定义的APN连接。 首先,我们要了解如何在Android系统中自定义APN。这通常涉及以下几个步骤: 1. **编写代码**:在...
APN(Access Point Name)是Android系统中...综上所述,"APN XML比对工具"是Android系统中进行APN管理与故障排查的实用辅助软件,通过它能高效地分析和处理APN配置文件,提高工作效率,确保网络连接的稳定性和安全性。
总结来说,本项目主要涵盖了Android中关于APN的管理,包括其创建、插入、修改和切换操作,这些都是保证设备在网络环境中顺畅运行的基础。`APNManager.java`和`APNObject.java`两个文件提供了实现这些功能的核心逻辑...
这种文件通常包含XML格式的APN配置信息,用户可以通过安装APN管理应用或者手动导入到设备的APN列表中。具体操作方法可能因设备型号和系统版本而异,需要按照文件内的说明或使用第三方工具进行。 总之,新增APN代码...
在这一版本上开发APN客户端意味着可以利用其优化的后台服务处理和电池管理特性,确保推送通知的高效且节能。 APN客户端是应用程序的一部分,负责接收和处理来自服务器的推送消息。它通常需要以下关键组件: 1. **...
APN(Access Point Name)系统应用是指在移动设备上,通过特定的接入点名称来管理网络连接,尤其是数据流量的设置。将应用变成系统应用,通常是为了获取更高的权限或者优化某些功能的运行环境。在Android系统中,APN...
在Android系统中,移动数据是设备连接到互联网的主要方式之一,尤其当Wi-Fi网络不可用时。本示例"demo_apn2.zip_DEMO_android移动数据"提供了在Android环境中关闭Wi-Fi并开启移动数据的源代码,这对于开发涉及网络...
Android扫盲2之桌面管理 Android扫盲3之添加删除联系人 Android扫盲4之蓝牙,无线网络,APN接入点相关 Android扫盲5之设置个性短信和来电铃声 Android扫盲6之Android如何切换为U盘 Android扫盲7之彩信图片的存储 ...
APNSettings是一款针对Android系统的应用程序,它为用户提供了快速访问和管理手机APN(Access Point Name)设置的途径。在Android设备上,APN设置至关重要,因为它们定义了移动数据连接的参数,如网络运营商、互联网...