Android APN设置接口

APN(Access Point Name),即“接入点名称”,用来标识GPRS的业务种类,目前分为两大类:CMWAP(通过GPRS访问WAP业务)、CMNET(除了WAP以外的服务目前都用CMNET,比如连接因特网等)。在做项目的时候,客户会要求更换APN,我在frameworks/base/services/core/java/com/android/server/customized/CustomizedService.java中实现了这些接口,下面我把APN的接口展示如下:

    public List selectAPN(String mNumeric){
	    String where = "numeric=\"" + mNumeric + "\"";
	    List l=new ArrayList();
	    Cursor cr = mContext.getContentResolver().query(mUri, null, where, null, null);
	    while(cr != null && cr.moveToNext()){
	    ContentValues values = new ContentValues();
        values.put("id", cr.getString(cr.getColumnIndex("_id")));
        values.put("name", cr.getString(cr.getColumnIndex("name")));
        values.put("numeric", cr.getString(cr.getColumnIndex("numeric")));
        values.put("mcc", cr.getString(cr.getColumnIndex("mcc")));
        values.put("mnc", cr.getString(cr.getColumnIndex("mnc")));
        values.put("apn", cr.getString(cr.getColumnIndex("apn")));
        values.put("user", cr.getString(cr.getColumnIndex("user")));
        values.put("server", cr.getString(cr.getColumnIndex("server")));
        values.put("password", cr.getString(cr.getColumnIndex("password")));
        values.put("proxy", cr.getString(cr.getColumnIndex("proxy")));
        values.put("prot", cr.getString(cr.getColumnIndex("port")));
        values.put("authtype", cr.getString(cr.getColumnIndex("authtype")));
        values.put("type", cr.getString(cr.getColumnIndex("server")));
 	l.add(values);
	}
	return l;
    }	  

    public int deleteAPN(String id){
        return mContext.getContentResolver().delete(mUri, "_id=" + id, null);
    }

  
    public int addAPN(String name,String numeric,String mcc,String mnc,String apn,String user,String server,String password,String proxy,String port,String authtype,String type){
	    int id = -1;
        ContentValues values = new ContentValues();
		values.put("name", name);
		values.put("apn", apn);
		values.put("type", type);
		values.put("numeric", numeric);
		values.put("mcc", mcc);
		values.put("mnc", mnc);			
		values.put("port", port);
		values.put("proxy", proxy);
		values.put("user", user);
		values.put("server", server);
	    values.put("password", password);
		values.put("authtype", authtype);
		Cursor c = null;
		Uri newRow = mContext.getContentResolver().insert(mUri, values);
		if (newRow != null) {
			c = mContext.getContentResolver().query(newRow, null, null, null, null);
			int idIndex = c.getColumnIndex("_id");
			c.moveToFirst();
			id = c.getShort(idIndex);
		}
		if (c != null)
			c.close();
		return id;
	}
	

    public int updateAPN(String id,String name,String numeric,String mcc,String mnc,String apn,String user,
	String server,String password,String proxy,String port,String authtype,String type){
		ContentValues values = new ContentValues();
		int idback=-1;
		String where = "_id=\"" + id + "\"";
		values.put("name", name);
		values.put("apn", apn);
		values.put("type", type);
		values.put("numeric", numeric);
		values.put("mcc", mcc);
		values.put("mnc", mnc);			
		values.put("port", port);
		values.put("proxy", proxy);
		values.put("user", user);
		values.put("server", server);
		values.put("password", password);
		values.put("authtype", authtype);
		idback=mContext.getContentResolver().update(mUri, values, where, null);
		return idback;
    }	


    public void setDefalutApn(String id) {	
	    ContentValues values = new ContentValues();
	    values.put("apn_id", id);
	    mContext.getContentResolver().update(Uri.parse(PREFERRED_APN_URI), values, null, null);
    }

接口实现如上,该导入的包不要忘记了~

猜你喜欢

转载自blog.csdn.net/lancelots/article/details/82261023
APN