`
wangxizhao
  • 浏览: 32082 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android之APN管理

阅读更多

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();
          }
     }
}

1
0
分享到:
评论

相关推荐

    Android端APN实现module

    总的来说,Android端APN实现module是一个涉及系统权限、数据库操作、网络连接管理等多个方面的技术实现,开发者需要具备扎实的Android基础和良好的安全意识来完成这个功能。通过这个模块,我们可以为用户提供更便捷...

    android中的APN开发

    本项目"android中的APN开发"显然是一个教学或示例应用,名为"MyApnDemo",旨在教给开发者如何在Android平台上创建、修改和管理APN设置。通过这个应用,开发者可以学习如何编写代码来实现以下功能: 1. **读取APN...

    Android APN开发流程分析.doc

    Android APN 开发流程分析是指 Android 操作系统中数据连接的实现过程,主要涉及到数据连接的建立、维护和管理。以下是 Android APN 开发流程分析的关键知识点: 1. 数据连接流程分析 Android 的数据连接是基于 ...

    Android的APN开发源码分析

    ### Android的APN开发源码分析 #### 一、Android数据连接原理 Android的数据连接机制主要是基于PPP(Point-to-Point Protocol)的方式实现的。PPP协议是一种广泛使用的串行链路通信协议,它允许用户通过拨号或其他...

    android 设置apn

    // 获取APN管理器 TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); List&lt;PhoneNumberUtils&gt; apns = tm.getAllCellInfo(); // 遍历APN列表 for (PhoneNumberUtils apn : apns) { ...

    [Mark安卓教程]Android手机修改APN不保存解决办法.pdf

    APN(Access Point Name,接入点名称)是移动设备访问互联网时必须配置的重要参数之一。它不仅决定了用户通过何种接入方式访问互联网,而且还关联着一系列的网络配置信息,包括IP地址类型、域名、认证方式等。对于...

    android widget GRRS/3G(APN)上网开关

    `toggleMobileData`方法需要获取到系统的APN管理服务,并调用其提供的接口来开关数据连接。这通常涉及到权限请求、反射调用,因为直接操作APN设置不是公开的API。以下是一个简化的示例: ```java private void ...

    android apn切换程序

    综上所述,"Android APN切换程序"是一个实用工具,它简化了Android设备上APN设置的管理,而压缩包中的文件则反映了该程序的开发结构和文档资料。对于Android用户和开发者来说,了解并掌握APN设置和此类工具的使用,...

    android apn设置 A20 A83 RK3288 验证通过

    "MyApnDemo"可能是一个自定义的应用程序,用于帮助用户更直观地管理和更改APN设置。 总的来说,正确设置APN对保持Android设备的网络连接至关重要。对于特定型号的设备或特定的网络环境,理解并正确操作APN设置能够...

    Android apn 消息推送(server与client)

    在Android平台上,APN(Access Point Name)通常指的是网络连接的接入点,它定义了设备如何连接到互联网。然而,当我们谈论"Android APN消息推送"时,这指的是利用APN机制实现应用间的即时消息传递服务。在这个项目...

    AS 工程自定义 APN 实现.rar

    "AS 工程自定义 APN 实现.rar"提供的就是一个Android Studio项目,旨在帮助开发者创建和管理自定义的APN连接。 首先,我们要了解如何在Android系统中自定义APN。这通常涉及以下几个步骤: 1. **编写代码**:在...

    APN xml比对工具

    APN(Access Point Name)是Android系统中...综上所述,"APN XML比对工具"是Android系统中进行APN管理与故障排查的实用辅助软件,通过它能高效地分析和处理APN配置文件,提高工作效率,确保网络连接的稳定性和安全性。

    设置APN节点,并切换到当前节点

    总结来说,本项目主要涵盖了Android中关于APN的管理,包括其创建、插入、修改和切换操作,这些都是保证设备在网络环境中顺畅运行的基础。`APNManager.java`和`APNObject.java`两个文件提供了实现这些功能的核心逻辑...

    新增APN代码

    这种文件通常包含XML格式的APN配置信息,用户可以通过安装APN管理应用或者手动导入到设备的APN列表中。具体操作方法可能因设备型号和系统版本而异,需要按照文件内的说明或使用第三方工具进行。 总之,新增APN代码...

    apn client(android push notification 4.2.2)

    在这一版本上开发APN客户端意味着可以利用其优化的后台服务处理和电池管理特性,确保推送通知的高效且节能。 APN客户端是应用程序的一部分,负责接收和处理来自服务器的推送消息。它通常需要以下关键组件: 1. **...

    APN 系统应用

    APN(Access Point Name)系统应用是指在移动设备上,通过特定的接入点名称来管理网络连接,尤其是数据流量的设置。将应用变成系统应用,通常是为了获取更高的权限或者优化某些功能的运行环境。在Android系统中,APN...

    demo_apn2.zip_DEMO_android移动数据

    在Android系统中,移动数据是设备连接到互联网的主要方式之一,尤其当Wi-Fi网络不可用时。本示例"demo_apn2.zip_DEMO_android移动数据"提供了在Android环境中关闭Wi-Fi并开启移动数据的源代码,这对于开发涉及网络...

    Android扫盲教程大全经典教程全分享

    Android扫盲2之桌面管理 Android扫盲3之添加删除联系人 Android扫盲4之蓝牙,无线网络,APN接入点相关 Android扫盲5之设置个性短信和来电铃声 Android扫盲6之Android如何切换为U盘 Android扫盲7之彩信图片的存储 ...

    APNSettings:充当 Android 设置的 APN 设置部分的快捷方式的 Android 应用程序

    APNSettings是一款针对Android系统的应用程序,它为用户提供了快速访问和管理手机APN(Access Point Name)设置的途径。在Android设备上,APN设置至关重要,因为它们定义了移动数据连接的参数,如网络运营商、互联网...

Global site tag (gtag.js) - Google Analytics