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;
}