Android判斷是否是CMWAP連網,如果是CMWAP連網需要設定代理,其他的使用直連網。這個是今天版本最後修改,也是我為Livingphone項目組寫的最後的代碼。
public boolean isCMWAP() { String currentAPN = ""; ConnectivityManager conManager = (ConnectivityManager) LivingPhoneApplication .getInstance().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = conManager .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); currentAPN = info.getExtraInfo(); if (currentAPN == null || currentAPN == "") { return false; } else { if (currentAPN.equals("cmwap")) { return true; } else { return false; } }
/** * 擷取網路連接對象 */ private HttpURLConnection getConnection(String url) throws IOException { HttpURLConnection httpUrlConnection = null; if (UIHelper.getInstance().isCMWAP()) { Log.e("ray", "isCMWAP"); int contentBeginIdx = task.url.indexOf('/', 7); StringBuffer urlStringBuffer = new StringBuffer( "http://10.0.0.172:80"); urlStringBuffer.append(task.url.substring(contentBeginIdx)); URL urltemp = new URL(urlStringBuffer.toString()); httpUrlConnection = (HttpURLConnection) urltemp.openConnection(); httpUrlConnection.setRequestProperty("X-Online-Host", task.url.substring(7, contentBeginIdx)); } else { URL connUrl = new URL(url); Log.e(TAG, "getConnection() url=" + url); httpUrlConnection = (HttpURLConnection) connUrl.openConnection(); } httpUrlConnection.setRequestProperty("Accept", "*/*"); httpUrlConnection.setRequestProperty("Pragma", "No-cache"); httpUrlConnection.setRequestProperty("Cache-Control", "no-cache"); httpUrlConnection.setRequestProperty("connection", "keep-alive"); httpUrlConnection.setRequestProperty("accept-charset", "utf-8"); //根據網路類型設定逾時時間 int net_type = UIHelper.getInstance().getNetworkType( LivingPhoneApplication.getInstance()); if (net_type == ConnectivityManager.TYPE_MOBILE) { httpUrlConnection.setConnectTimeout(TIMEOUT / 2); } else if (net_type == ConnectivityManager.TYPE_WIFI) { httpUrlConnection.setConnectTimeout(TIMEOUT); } return httpUrlConnection; }