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. C++教材

    C++语言: 1.<Essential C++>:Stanley B.Lipman著. 旁枝暂略,主攻核心,轻薄短小.附习题与解答,适合刚開始学习的人. 2.<The C++ Pro ...

  2. 无需安装Mono的Jexus

    ASP.NET跨平台实践:无需安装Mono的Jexus“独立版”   在Linux上运行ASP.NET网站或WebApi的传统步骤是,先安装libgdiplus,再安装mono,然后安装Jexus.在 ...

  3. oracle 之 内存—鞭辟近里(四)

    oracle 之 内存—鞭辟近里(四) 今天是2013-07-11日,首先我非常感谢我的哥们也是我的网友杨工,非常感谢他能在大数据库内帮我执行一下我所需要的信息.就是他说的网络真是一个互助友爱的平台. ...

  4. CF 519E(树上倍增求lca)

    传送门:A and B and Lecture Rooms 题意:给定一棵树,每次询问到达点u,v距离相等的点有多少个. 分析:按情况考虑: 1.abs(deep[u]-deep[v])%2==1时, ...

  5. FZU2179(数位dp)

    传送门:Chriswho 题意:求区间[1,n]内能整除自己本身各位数字的数的个数. 分析:这题跟CF 55D Beautiful numbers一样的,一个数能被它的所有非零数位整除,则能被它们的最 ...

  6. CRL 版本2.1.0.0下载

    此次更新完善了部份功能,详情见UpdateLog,重新整理了开发文档,更美档,更详细 百度盘下载 下载地址: 百度盘下载

  7. 移动开发平台-应用之星app制作教程

    目前在AppStore.GooglePlay等应用商店里已经有以百万计的Apps,应用程序使移动互联网空间得以无限拓展.很多人梦想着AngryBirds式的奇迹在自己身上发生,他们渴望自己开发的应用程 ...

  8. 备份恢复与CRM集成的sharepoint站点

    在部署CRM与Sharepoint2010集成文档管理之后,一直担心如果需要在新服务器上重新部署CRM, 那么之前与CRM集成的Sharepoint2010文档内容,是否可以重新正确映射到相应的文档位 ...

  9. eclipse failed to create the java virtual machine 问题图文解析(转)

    clipse failed to create  the java virtual  machine 解决方法: 1.问题现象 2.java虚拟机初始化失败!寻找eclipse解压路径 3.寻找ecl ...

  10. DotNet基础

    DotNet基础 URL特殊字符转义 摘要: URL中一些字符的特殊含义,基本编码规则如下: 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%) ...