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. delphi 使用superobject实现jsonrpc的http远程调用 good

    http://blog.csdn.net/earbao/article/details/46423167

  2. win7下怎样设置putty免用户名密码登陆

    putty是一款好用的远程登录linux服务器软件,但每次输入用户名密码毕竟有些烦人,这里教你免用户名密码登陆.   工具/原料 putty 方法/步骤   去百度下载putty,小巧易用,仅有0.5 ...

  3. C语言函数参数压栈顺序为何是从右到左?(从左向右的话,碰到printf的会陷入死循环)

    上学期学习了汇编语言,并在操作系统实验中使用了汇编+C语言混合编程,中间也了解了一些C语言与汇编语言的对应关系. 由于汇编语言是底层的编程语言,各种函数参数都要直接控制栈进行存取,在混合编程中,要用汇 ...

  4. [Android学习笔记]组合控件的使用

    组合控件的使用 开发过程中,多个UI控件需要协同工作,相互交互之后,才可完成一个完整的业务需求,此时可把这些控件封装成为一个整体,相互之间的交互逻辑封装其中,外部调用可无需关心内部逻辑,只需获取处理后 ...

  5. 解析php混淆加密解密的手段,如 phpjm,phpdp神盾,php威盾

    原文 解析php混淆加密解密的手段,如 phpjm,phpdp神盾,php威盾 php做为一门当下非常流行的web语言,常常看到有人求解密php文件,想当年的asp也是一样.一些人不理解为什么要混淆( ...

  6. 基于libevent, libuv和android Looper不断演进socket编程 - 走向架构师之路 - 博客频道 - CSDN.NET

    基于libevent, libuv和android Looper不断演进socket编程 - 走向架构师之路 - 博客频道 - CSDN.NET 基于libevent, libuv和android L ...

  7. linux命令笔记之ls

    假设要将全部的命令以一篇博客持续更新的方式去展现,将来在查找的时候非常不方便.出于这种考虑.将来将非常多命令都分开记录. 这里,一些基础使用方法都不做太多说明.主要记录下平时经经常使用到的一些命令. ...

  8. android--手机桌面添加网址链接图标(解决方式)

    这样的做法最普遍最简单: 1.新建一个android空项目: 2.在drawable文件夹下加入图标文件,如icon.png:在values文件夹下的strings.xml文件里添加名称.如websi ...

  9. currentstyle和getComputedStyle兼容问题

    currentStyle:获取计算后的样式,也叫当前样式.终于样式. 长处:能够获取元素的终于样式,包含浏览器的默认值,而不像style仅仅能获取行间样式,所以更经常使用到. 注意:不能获取复合样式如 ...

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

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