手机联网,代理模式设置
2013-05-30 18:47
232 查看
手机联网的时候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);
}
}
}
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);
}
}
}
相关文章推荐
- [移动网关]解决3gwap联网失败:联网请求在设置代理与直连两种方式的切换
- 开发中关于手机的听筒模式的设置
- 关于Android手机MTP模式连接的一些设置(win7和ubuntu下,以红米1s为例)
- Vmware设置NAT模式联网
- 关于手机已经设置成开发者模式但是Android studio不能识别问题
- [Android]解决3gwap联网失败:联网请求在设置代理与直连两种方式的切换
- 设置模式之代理模式(Proxy Pattern) (C++源代码)
- 安卓系统给手机设置代理
- 智能手机可设置适合眼睛的夜间模式
- 调取手机设置模式里的震动或铃声 Android
- linux系统在命令行模式下如何设置使用代理上网
- PowerShell脚本自动设置安卓手机wifi代理
- 关于Android手机MTP模式连接的一些设置(win7和ubuntu下,以红米1s为例)
- Fiddler设置代理后,iphone手机无法访问网络的全面解决办法
- Android通过HttpURLConnection与HttpClient联网代理网关设置
- 移动开发webapp开发常用meta设置手机浏览器全屏模式
- Fiddler将笔记本设置代理,抓取手机网络请求包
- Android通过HttpURLConnection与HttpClient联网代理网关设置
- 移动开发webapp开发常用meta设置手机浏览器全屏模式,webappmeta
- 装饰者设置模式和代理模式的区别