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. Android 网络连接--Wifi/3G

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

  2. android 判断对象,Android网络判断知识小结

    Android中判断当前网络是否可用 应用场景:实现判断当前网络是否可用 当前有可用网络,如下图: 当前没有可用网络,如下图: 实现步骤: 1.获取ConnectivityManager对象 Cont ...

  3. Android 如何判断 Wi-Fi 是 2.4G+5G 双频?

    前言 由于稳定性.成本等原因,大部分智能家居设备都只支持连接 2.4G 的无线网络.所以我们在利用 APP 实现配网的时候就需要判断 Wi-Fi 是 2.4G.5G,还是 2.4G+5G 双频,也就是 ...

  4. android 网络连接判断

    Android 网络判断类,用来判断网络状态 使用方法: (1)先初始化 //初始化网络状态检测类 NetworkStateManager.instance().init(this); (2)判断是否 ...

  5. Android杂谈--网络状态判断(3G/WIFI)

    在http://www.cnblogs.com/loulijun/archive/2012/02/03/2337230.html这篇文章中已经介绍了网络状态的判断,但是测试后发现用此方法只能够判断WI ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 判断网络类型是wifi,还是3G,还是2G网络,对不同 的网络进行不同的处理,现将判断方法整理给大家,以供参考 说明:下面用到 ...

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

    http://www.mobiletuts.me 获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. An ...

  8. android编程获取网络和wifi状态及调用网络设置界面,Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面 - Android平台开发技术 - 博客园...

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

  9. Android.网络连接状态(联网,2g,3g,wifi等)

    net与wap什么意思 WAP上网所谓WAP(Wireless Application Protocol)即无线应用协议,是一项全球性的网络通信协议.WAP使移动Internet 有了一个通行的标准, ...

最新文章

  1. JQuery $post函数
  2. 深度学习开发者的AI Party来了!WAVE SUMMIT+2021与你相约双十二
  3. python课本第三章答案idle_第三天任务 (【基于Python编程从入门到实践】第三章 列表 书本及动手试一试)...
  4. mysql 游标_跟我快速学数据存储:MySQL
  5. 堪称神器的命令行工具系列——curl
  6. 13. 在后台配置主题
  7. STRESS测试分享
  8. 转让App开发者账号
  9. 实验八 页面置换模拟程序设计
  10. 高等学校计算机水平考试分值,请问计算机二级ps的考试题型和分值是怎样的?...
  11. StarUML3.0 的破解方法
  12. 计算机组成原理勘误,《计算机组成原理》勘误表.doc
  13. 项目规范之husky lint-stated
  14. CocosCreator发布微信子域
  15. 【雅思备考】听说读写攻略 | 雅思核心词汇之科技类
  16. 转贴||《送别》 长亭外,古道边,芳草碧连天。||王国维之死,是一个世纪的谜语...
  17. 统计学里的时间序列分析总结
  18. optitrack学习(4):动补系统marker点设置与刚体建立
  19. 解决C3P0在Linux下Failed to get local InetAddress for VMID问题
  20. python:实现prefix conversions前缀转换算法(附完整源码)

热门文章

  1. react-native中显示手机本地图片/视频
  2. 亲手搭建一个基于Asp.Net WebApi的项目基础框架1
  3. Siamese Neural Networks for One-shot Image Recognition
  4. 初学java---第二课《接收控制台(console)输入的方法》
  5. Count on a tree
  6. EasyUI 分页 简洁代码
  7. 使用python移动飞信模块发送短信
  8. step5 . day4 网络编程 基于UDP协议的网络编程流程及API
  9. step1 . day5 C语言基础练习之日历(使用函数调用,优化至元年开始时间)
  10. Struts2的国际化