Toast.makeText(ApnNew.this, \is unsuccess\Toast.LENGTH_SHORT).show(); } };
private OnClickListener existlis = new OnClickListener(){
@Override
public void onClick(View v) { int ri = checkAPN(); if(ri == -1)
Toast.makeText(ApnNew.this, \Toast.LENGTH_SHORT).show(); else
Toast.makeText(ApnNew.this, \Toast.LENGTH_SHORT).show(); } }; /*
* 入口
* 设置指定的APN接入点 * */
public void setCmwapAPN() { try {
if (!isCmwap()) {
int net_type = getNetWorkType(); m_oldNetWorkType = net_type;
if ((phoneSettedApnID = checkAPN()) != -1) {
SetDefaultAPN(phoneSettedApnID); } else {
InsetAPN();
SetDefaultAPN(apnd_id); }
不存在存在此APN\此APN\
Thread.sleep(8000L); } }
catch (Exception e) {
Log.i(\ } }
private int apnd_id = 0; int m_oldApnId = -1; int m_oldNetWorkType = -1;
private int phoneSettedApnID = -1;//当前APNid private static final Uri APN_TABLE_URI = Uri.parse(\
private static final Uri PREFERRED_APN_URI = Uri.parse(\ private String getMCC() {
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String numeric = tm.getSimOperator(); String mcc = numeric.substring(0, 3); Log.i(\ return mcc; }
private String getMNC() {
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String numeric = tm.getSimOperator();
String mnc = numeric.substring(3, numeric.length()); Log.i(\ return mnc; }
private String getSimOperator() {
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String SimOperator = tm.getSimOperator(); return SimOperator; }
public ApnNode getDefaultAPN() {
String id = \ String apn = \ String proxy = \ String name = \ String port = \ String type = \ String mcc = \ String mnc = \ String numeric = \
ApnNode apnNode = new ApnNode(); // Uri uri = Uri.parse(\
Cursor mCursor = getContentResolver().query(PREFERRED_APN_URI, null, null, null, null); if (mCursor == null) {
// throw new Exception(\ return null; }
while (mCursor != null && mCursor.moveToNext()) {
id = mCursor.getString(mCursor.getColumnIndex(\ name = mCursor.getString(mCursor.getColumnIndex(\ apn = mCursor.getString(mCursor.getColumnIndex(\ proxy = mCursor.getString(mCursor.getColumnIndex(\ port = mCursor.getString(mCursor.getColumnIndex(\ mcc = mCursor.getString(mCursor.getColumnIndex(\ mnc = mCursor.getString(mCursor.getColumnIndex(\
numeric = mCursor.getString(mCursor.getColumnIndex(\ Log.d(\apn + \ }
phoneSettedApnID = Integer.valueOf(id); apnNode.setName(name); apnNode.setApn(apn); apnNode.setProxy(proxy);
apnNode.setPort(port); apnNode.setMcc(mcc); apnNode.setMnc(mnc);
apnNode.setNumeric(numeric); return apnNode; }
public boolean isCurretApn() {
ApnNode apnNode = new ApnNode(); apnNode.setName(\中国电信CTNET\ apnNode.setApn(\
apnNode.setProxy(\ apnNode.setPort(\ apnNode.setMcc(getMCC()); apnNode.setMnc(getMNC());
apnNode.setNumeric(getSimOperator()); ApnNode checkApn = getDefaultAPN(); if ((apnNode.getApn().equals(checkApn.getApn()) && apnNode.getMcc().equals(checkApn.getMcc()) && apnNode.getMnc().equals(checkApn.getMnc()) && apnNode.getNumeric().equals( checkApn.getNumeric())) && (checkApn.getType() == null || \|| \
(apnNode.getApn().equals(checkApn.getApn()) && checkApn.getProxy().equals(\ {
return true; }
m_oldApnId = phoneSettedApnID; return false; }
/**
* 获得网络连接管理 *
* @return */
private ConnectivityManager getConnectManager() {
ConnectivityManager m_ConnectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return m_ConnectivityManager; }
/**
* 获得当前联网类型wifi or mobile *
* @return */
private int getNetWorkType() {
if (getConnectManager() != null) {
NetworkInfo networkInfo getConnectManager().getActiveNetworkInfo(); if (networkInfo != null)
return networkInfo.getType(); return -1; } else {
return -1; } }
private boolean isCmwap() {
int net_type = getNetWorkType();
if (net_type == ConnectivityManager.TYPE_MOBILE) {
return isCurretApn(); }
else if (net_type == ConnectivityManager.TYPE_WIFI) {
return false; }
return false; }
public boolean setDefaultApn(int apnId) {
boolean res = false;
ContentResolver resolver = getContentResolver(); ContentValues values = new ContentValues(); values.put(\
try
=