package com.bon.setapn; import android.content.ContentResolver; import android.content.ContentValues; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.database.Cursor; import android.net.Uri; import android.util.Log; /** * 电信wap apn * @author lei * */ public class SetCtWap { //添加APN共享数据类的Uri final static String APN_URI = "content://telephony/carriers"; //设置默认APN选项的数据共享APN final static String MAIN_APN = "content://telephony/carriers/preferapn"; final static String MY_APN = "电信wap"; private static int apnId = 0; private static SharedPreferences sharedPreferences; /** * 添加新的APN选项并返回所添加的APNID * @return id 所添加APN的ID */ private static int getAPNId(ContentResolver resolver) { int id = -1; ContentValues values = new ContentValues(); values.put("name", MY_APN); values.put("apn", "ctWap"); values.put("proxy", "10.0.0.200"); values.put("port", "80"); values.put("numeric", "46003"); values.put("mcc", "460"); values.put("mnc", "03"); values.put("user", "ctwap@mycdma.cn"); values.put("password", "vnet.mobi"); values.put("ppppwd", "#777"); Cursor c = null; Uri newRow = resolver.insert(Uri.parse(APN_URI), values); if (newRow != null) { c = resolver.query(newRow, null, null, null, null); int idIndex = c.getColumnIndex("_id"); c.moveToFirst(); id = c.getShort(idIndex); } if (c != null) { c.close(); } return id; } /** * 设置默认的APN选项 * @param id 所要设置APN的系统数据库中所对应的ID * 相关说明:通过数据共享类进行数据 共享Uri地址是:content://telephony/carriers/preferapn */ public static void setWapAPN(ContentResolver resolver, SharedPreferences _sharedPreferences) { ContentValues values = new ContentValues(); sharedPreferences = _sharedPreferences; apnId = sharedPreferences.getInt("apnId", 0); if(apnId==0){ int id = getAPNId(resolver); Log.i("MainActivity", "重新创建了一个"); values.put("apn_id", id); Editor editor=sharedPreferences.edit(); //保存创建的接入点id editor.putInt("apnId", id); editor.commit(); }else { Log.i("MainActivity", "设置以前的"); values.put("apn_id", apnId); } resolver.update(Uri.parse(MAIN_APN), values, null, null); } /** * 重新创建一个接入点 并设置 * @param resolver * @param _sharedPreferences */ //防止用户自己删除以前创建的 删除之后 设置不了 public static void createWapApnAndSet(ContentResolver resolver, SharedPreferences _sharedPreferences) { ContentValues values = new ContentValues(); sharedPreferences = _sharedPreferences; apnId = sharedPreferences.getInt("apnId", 0); Log.i("MainActivity", "保存的id"+apnId); Log.i("MainActivity", "查到的id"+apnId); Log.i("MainActivity", apnId+""); int id = getAPNId(resolver); Log.i("MainActivity", "重新创建了一个"); values.put("apn_id", id); Editor editor=sharedPreferences.edit(); //创建并保存id editor.putInt("apnId", id); editor.commit(); resolver.update(Uri.parse(MAIN_APN), values, null, null); } }