APP--3G的断开与连接--网络接入点APN修改

3G的断开与连接可以通过修改网络接入点APN来实现--写入一个错误的APN 网络即断开  写入正确的APN 网络即可连接

开发板实验:正确的APN-- 3GNET   错误的APN --3wap

主要代码:

package com.cart.view;

import java.util.ArrayList;

import java.util.List;

import com.cart.vo.ApnInfo;

import android.content.ContentResolver;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.net.Uri;

import android.util.Log;

public class Apn {

     String allPath="content://telephony/carriers";

     String currentPath="content://telephony/carriers/preferapn";

     Uri allUri,currentUri;

     ContentResolver cResolver;

     

     public Apn(Context context)

     {

    allUri=Uri.parse(allPath);

    currentUri=Uri.parse(currentPath);

    cResolver=context.getContentResolver();

     }

     

     

     /**

      * 获取所有APN

      * @return apnList

      * @author fangcm 2011-08-19

      */

     public List<ApnInfo> getAllApn()

     {

    List<ApnInfo> apnList=new ArrayList<ApnInfo>();

    Cursor cr=cResolver.query(allUri, null, null, null, null);

    while (cr!=null&&cr.moveToNext()) {

          ApnInfo apnInfo=new ApnInfo();

          apnInfo.setApnId(cr.getString(cr.getColumnIndex("_id")));

          apnInfo.setApnName(cr.getString(cr.getColumnIndex("apn")));

          cr.getString(cr.getColumnIndex("current"));

          apnList.add(apnInfo);

  }

     

    return apnList;

     }

     

     

     

     /**

      * 获取当前选中APN

      * @return 当前APN

      * @author fangcm 2011-08-19

      */

     public ApnInfo getCurrentApn()

     {

    ApnInfo apnInfo=null;

    Cursor cr=cResolver.query(currentUri, null, null, null, null);

    while (cr!=null&&cr.moveToNext()) {

           apnInfo=new ApnInfo();

           apnInfo.setApnId(cr.getString(cr.getColumnIndex("_id")));

           apnInfo.setApnName(cr.getString(cr.getColumnIndex("apn")));

           cr.getString(cr.getColumnIndex("current"));

           Log.d("carWifi", "---getCurrentApn-----====="+apnInfo.getApnId());

  }

    return apnInfo;

     }

     

     

     

     /**

      * 添加APN

      * @param apnInfo 新apn

      * @return uri 新apn uri

      * @author fangcm 2011-08-19

      */

     public Uri addApn(ApnInfo apnInfo)

     {

    Uri uri = null;

    if (apnInfo!=null) {

    ContentValues values=new ContentValues();

    values.put("name", apnInfo.getApnName());

             values.put("apn", apnInfo.getApnName());

             values.put("mcc", apnInfo.getMcc());

             values.put("mnc", apnInfo.getMnc());

             values.put("numeric", apnInfo.getNumeric());

    uri=cResolver.insert(allUri, values);

    Log.d("carWifi", "---addApn-uri----====="+uri);

}

    return uri;

     }

     

     

     

     /**

      * 更改APN

      * @param apnInfo 默认apn

      * @return 1 成功

      * @author fangcm 2011-08-19

      */

     public int updateApn(ApnInfo apnInfo)

     {

    int x=-1;

    ContentValues values=new ContentValues();

    values.put("apn_id", apnInfo.getApnId());

    values.put("numeric", apnInfo.getNumeric());

    x=cResolver.update(currentUri, values, null, null);

    Log.d("carWifi", apnInfo.getApnId()+"---updateApn-----====="+x);

    return x;

     }

     

     

     /**

      * 获取指定apn的id

      * @param uri

      * @return

      * @author fangcm 2011-08-19

      */

     public String getApnId(Uri uri)

     {

    String id="-1";

    if (uri!=null) {

    Cursor cr=cResolver.query(uri, null, null, null, null);

    while (cr!=null&&cr.moveToNext()) {

             id=cr.getString(cr.getColumnIndex("_id"));

      }

    }

    Log.d("carWifi", "---getApnId-----====="+id);

    return id;

     }

}

注意添加权限
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"/>
ApnInfo-----:
package com.cart.vo;
public class ApnInfo {
private String apnId;
private String apnName;
private String numeric;
private String current;
private String mcc;
private String mnc;
public String getApnId() {
return apnId;
}
public void setApnId(String apnId) {
this.apnId = apnId;
}
public String getApnName() {
return apnName;
}
public void setApnName(String apnName) {
this.apnName = apnName;
}
public String getNumeric() {
return numeric;
}
public void setNumeric(String numeric) {
this.numeric = numeric;
}
public String getCurrent() {
return current;
}
public void setCurrent(String current) {
this.current = current;
}
public String getMcc() {
return mcc;
}
public void setMcc(String mcc) {
this.mcc = mcc;
}
public String getMnc() {
return mnc;
}
public void setMnc(String mnc) {
this.mnc = mnc;
}
}

转载于:https://www.cnblogs.com/cm1943/archive/2011/08/22/2149877.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值