手机联网的时候CMWAP模式设置代理,发现联通WAP下才需要代理模式,其他均可直连。欢迎探讨。
private void detectProxy() {
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
// 如果当前有网络连接,并且是GPRS连接,读取系统默认的代理设置
if (ni != null && ni.isAvailable()
&& ni.getType() == ConnectivityManager.TYPE_MOBILE
&& ni.getExtraInfo().equals("UNIWAP")) { //这是关键!但是每个手机设置的apn未必都这样命名,所以需要先判断运营商信息,再根据apn来判断是否需要代理。
String proxyHost = android.net.Proxy.getDefaultHost();
int port = android.net.Proxy.getDefaultPort();
if (proxyHost != null) {
InetSocketAddress sa = new InetSocketAddress(proxyHost, port);
mProxy = new Proxy(Proxy.Type.HTTP, sa);
}
}
}