public static HttpURLConnection openUrl(Context context, String urlStr) {
URL urlURL = null;
HttpURLConnection httpConn = null;
try {
urlURL = new URL(urlStr);
// 需要android.permission.ACCESS_NETWORK_STATE
// 在没有网络的情况下,返回值为null。
NetworkInfo networkInfo = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE))
.getActiveNetworkInfo();
// 如果是使用的运营商网络
if (networkInfo != null) {
if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
// 获取默认代理主机ip
String host = android.net.Proxy.getDefaultHost();
// 获取端口
int port = android.net.Proxy.getDefaultPort();
if (host != null && port != -1) {
// 封装代理連接主机IP与端口号。
InetSocketAddress inetAddress = new InetSocketAddress(host, port);
// 根据URL链接获取代理类型,本链接适用于TYPE.HTTP
java.net.Proxy.Type proxyType = java.net.Proxy.Type.valueOf(urlURL.getProtocol().toUpperCase());
java.net.Proxy javaProxy = new java.net.Proxy(proxyType, inetAddress);
httpConn = (HttpURLConnection) urlURL.openConnection(javaProxy);
} else {
httpConn = (HttpURLConnection) urlURL.openConnection();
}
} else {
httpConn = (HttpURLConnection) urlURL.openConnection();
}
httpConn.setConnectTimeout(Const.NETWORK_OPEN_TIMEOUT);
httpConn.setReadTimeout(Const.NETWORK_READ_TIMEOUT);
httpConn.setDoInput(true);
} else {
// LogOut.out(this, "No Avaiable Network");
}
} catch (NullPointerException npe) {
npe.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return httpConn;
}
android判断2g|3g网络
可以通过ConnectivityManager获取当前网络连接状态,通过状态值判别当前网络连接
NetworkInfo info = conMan.getActiveNetworkInfo();
if(info !=null && info.getType() == ConnectivityManager.TYPE_MOBILE)
{
// NETWORK_TYPE_EVDO_A是电信3G
//NETWORK_TYPE_EVDO_A是中国电信3G的getNetworkType
//NETWORK_TYPE_CDMA电信2G是CDMA
//移动2G卡 + CMCC + 2//type = NETWORK_TYPE_EDGE
//联通的2G经过测试 China Unicom 1 NETWORK_TYPE_GPRS
if(info.getSubtype() == TelephonyManager.NETWORK_TYPE_GPRS
|| info.getSubtype() == TelephonyManager.NETWORK_TYPE_CDMA
|| info.getSubtype() == TelephonyManager.NETWORK_TYPE_EDGE){
System.out.println("mobile connected");
}
else{
System.out.println("type:"+info.getSubtype());
System.out.println("not mobile");
}
}else
System.out.println("not mobile connected");
通过getType的值可以得到以下2g|3g网络
分享到:
相关推荐
本文就介绍了4中Android屏幕自适应解决方案。 一、细说layout_weight 目前最为推荐的Android多屏幕自适应解决方案。 该属性的作用是决定控件在其父布局中的显示权重,一般用于线性布局中。其值越小,则对应的...
width=100%就可以使得图片宽度充满屏幕,高度自适应
android应用自适应多分辨率的解决方法
这个是android屏幕自适应的例子,可以在360x480,480x800 480x854 640x360分辨率,是自适应的,不会因为屏幕图片发上变化!
android自定义dialog嵌套listview自适应屏幕
android屏幕自适应android属性[参考].pdf
2、Android的三种基本自适应方式;3、一点点必要的代码展现。个人认为还是很不错的,虽然不是什么开发的核心东西,但是在我们开发android过程中却都是要必须面对的问题。希望这份资料能帮助到你。呵呵
当宽度一定时,如满屏,高度自适应 Android代码 继承自imageView
android屏幕自适应android属性归类.pdf
http://blog.csdn.net/rocklee/article/details/51524982 配套的公式,直接输入真机调试好后的dp值,即可得到新机型的dp值,谁用谁知道!
android屏幕自适应案例详解,讲解各种自适应布局,还有原码,非常棒,
android layout自适应是很麻烦的一块。本实例工程,验证了各种分辨率、各种密度下,android 自适应规律。
基于android屏幕的自适应的布局方式。
android 自适应屏幕 翻转 网络转发 共享给初学者
Android自适应分辨率,让程序自动适应屏幕大小
android屏幕自适应android属性[参照].pdf
Android TextView 去掉自适应默认的fontpadding的实现方法 最近在项目中使用textview时发现在使用Android:layout_height=”wrap_content”这个属性设置后,textview会有默认的padding,也就是fontpadding。这样就会...
浅谈Android屏幕自适应.pdf
4中方法实现Android屏幕自适应
Android如何自适应多种屏幕手机就是用多种方法实现