public class NetworkProber { 



/** 

* 网络是否可用 



* @param activity 

* @return 

*/ 

public static boolean isNetworkAvailable(Context context) { 

ConnectivityManager connectivity = (ConnectivityManager) context 

.getSystemService(Context.CONNECTIVITY_SERVICE); 

if (connectivity == null) { 

} else { 

NetworkInfo[] info = connectivity.getAllNetworkInfo(); 

if (info != null) { 

for (int i = 0; i < info.length; i++) { 

if (info[i].getState() == NetworkInfo.State.CONNECTED) { 

return true; 









return false; 





/** 

* Gps是否打开 



* @param context 

* @return 

*/ 

public static boolean isGpsEnabled(Context context) { 

LocationManager locationManager = ((LocationManager) context 

.getSystemService(Context.LOCATION_SERVICE)); 

List<String> accessibleProviders = locationManager.getProviders(true); 

return accessibleProviders != null && accessibleProviders.size() > 0; 





/** 

* wifi是否打开 

*/ 

public static boolean isWifiEnabled(Context context) { 

ConnectivityManager mgrConn = (ConnectivityManager) context 

.getSystemService(Context.CONNECTIVITY_SERVICE); 

TelephonyManager mgrTel = (TelephonyManager) context 

.getSystemService(Context.TELEPHONY_SERVICE); 

return ((mgrConn.getActiveNetworkInfo() != null && mgrConn 

.getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel 

.getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS); 





/** 

* 推断当前网络是否是wifi网络 

* if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) { //推断3G网 



* @param context 

* @return boolean 

*/ 

public static boolean isWifi(Context context) { 

ConnectivityManager connectivityManager = (ConnectivityManager) context 

.getSystemService(Context.CONNECTIVITY_SERVICE); 

NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); 

if (activeNetInfo != null 

&& activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) { 

return true; 



return false; 





/** 

* 推断当前网络是否是3G网络 



* @param context 

* @return boolean 

*/ 

public static boolean is3G(Context context) { 

ConnectivityManager connectivityManager = (ConnectivityManager) context 

.getSystemService(Context.CONNECTIVITY_SERVICE); 

NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); 

if (activeNetInfo != null 

&& activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) { 

return true; 



return false; 





另外还有两个方法推断网络是否可用:

public static boolean isNetworkAvailable_00(Context context) { 

ConnectivityManager cm = ((ConnectivityManager) context 

.getSystemService(Context.CONNECTIVITY_SERVICE)); 

if (cm != null) { 

NetworkInfo info = cm.getActiveNetworkInfo(); 

if (info != null && info.isConnectedOrConnecting()) { 

return true; 





return false; 





public static boolean isNetworkAvailable_01(Context context) { 

ConnectivityManager cm = (ConnectivityManager) context 

.getSystemService(Context.CONNECTIVITY_SERVICE); 

NetworkInfo network = cm.getActiveNetworkInfo(); 

if (network != null) { 

return network.isAvailable(); 



return false; 



更加严谨的写法: 

public static boolean checkNet(Context context) { 



try { 

ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 

if (connectivity != null) { 



NetworkInfo info = connectivity.getActiveNetworkInfo(); 

if (info != null && info.isConnected()) { 



if (info.getState() == NetworkInfo.State.CONNECTED) { 

return true; 







} catch (Exception e) { 

return false; 



return false; 

}

network: Android 网络推断(wifi、3G与其它)的更多相关文章

  1. network: Android 网络判断(wifi、3G与其他)

    package mark.zeng; import Java.util.List; import Android.content.Context; import android.location.Lo ...

  2. Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面

    随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityManager  类,用 ...

  3. Android: 网络随时需要在3G和Wifi切换,网络程序需要注意

    平时,3G和WIFI 都开着的时候,Android默认使用Wifi,但现实环境中不可能到处都有wifi,所以手机会经常自动切换网络. 有的时候,手机一开始使用wifi上网,当进入待机后10-30分钟, ...

  4. Android网络类型判断(2g、3g、wifi)

    判断网络类型是wifi,还是3G,还是2G网络,对不同 的网络进行不同的处理,现将判断方法整理给大家,以供参考   说明:下面用到的数据移动2G,联通2G,联通3G,wifi我都已经测试过,暂时手上 ...

  5. 转:Android 判断用户2G/3G/4G移动数据网络

    Android 判断用户2G/3G/4G移动数据网络 在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以 ...

  6. Android 判断用户2G/3G/4G移动数据网络

    Android 判断用户2G/3G/4G移动数据网络 在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以 ...

  7. Android 网络开发之WIFI

    WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为&qu ...

  8. iOS开发 - 检测网络状态(WIFI、2G/3G/4G)

    本文转载至 http://blog.csdn.net/wangzi11322/article/details/45580917 检测网络状态 在网络应用中,需要对用户设备的网络状态进行实时监控,目的是 ...

  9. Android 中的WiFi剖析

    Android的WiFi 我们通常看到WiFi的守护进程wpa_supplicant在我们的ps的进程列表中,这个就是我们的wifi守护进程.wpa_supplicant在external/wpa_s ...

随机推荐

  1. ezw证件照芯片压缩算法

    相关网站:http://m.blog.csdn.net/blog/kimwu/12654517 http://blog.sina.com.cn/s/blog_4be751690100bsgb.html ...

  2. 《转》div 中间固定 左右自适应实现

    <转自>:http://www.w3cplus.com/css/layout-column-three 对于我来说,这是一种很少碰到的布局方法,不知道大家有何体会,那么下面我们一起来看这种 ...

  3. UNIX 网络编程之线程

    概述: 实现并发服务器一般都是父进程accept一个连接,然后fork一个子进程,该子进程处理与该连接对端的客户之间的通信.但是fork是昂贵,耗资源和时间.而线程是轻量级线程,它的创建比进程的创建块 ...

  4. [poj 2991]Crane[线段树表示向量之和,而非数量]

    题意: 起重机的机械臂, 由n段组成, 对某一些连接点进行旋转, 询问每次操作后的末端坐标. 思路: 由于旋转会影响到该点之后所有线段的角度, 因此容易想到用线段树记录角度, 成段更新. (但是不是每 ...

  5. Wamp环境下配置--Apache虚拟主机

    1.首先打开apache的配置文件httpd.conf,并去掉#Include conf/extra/httpd-vhosts.conf前面的#,启用虚拟主机功能 # Virtual hosts In ...

  6. loj1341(数学)

    传送门:Aladdin and the Flying Carpet 题意: 给出两个正整数1<=m<=n<=1e12.问N可以拆成多少对p*q,使得p和q中最小的不小于a,且p!=q ...

  7. java中怎么终止一个线程的执行----个人学习心得

    参考了一下两个网站的介绍: ①:http://blog.csdn.net/liuhanhan512/article/details/7077601 ②:http://www.blogjava.net/ ...

  8. Hasor:生命周期

    首先引用Wiki的介绍一下Hasor:     “Hasor是一款开源框架.它是为了解决企业模块化开发中复杂性而创建的.Hasor遵循简单的依赖.单一职责,在开发多模块企业项目中更加有调理.然而Has ...

  9. redis来共享各个服务器的session,并同时通过redis来缓存一些常用的资源,加快用户获得请求资源的速度(转)

    时间过得真快,再次登录博客园来写博,才发现距离上次的写博时间已经过去了一个月了,虽然是因为自己找了实习,但这也说明自己对时间的掌控能力还是没那么的强,哈哈,看来还需不断的努力啊!(这里得特别说明一下本 ...

  10. python实用小代码

    栈的实现 #!/usr/bin/env python #coding=utf-8 #python version 2.7.4 class stack: def __init__(self,list=N ...