转载原文地址:http://www.cnblogs.com/renqingping/archive/2012/10/18/Net.html

当前有可用网络,如下图:

当前没有可用网络,如下图:

实现步骤:

1、获取ConnectivityManager对象

  1. Context context = activity.getApplicationContext();
  2. // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
  3. ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

2、获取NetworkInfo对象

  1. // 获取NetworkInfo对象
  2. NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

3、判断当前网络状态是否为连接状态

  1. if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
  2. {
  3. return true;
  4. }

4、在AndroidManifest.xml中添加访问当前网络状态权限

  1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>

代码如下:

  1. public class ClassTestDemoActivity extends Activity
  2. {
  3. @Override
  4. public void onCreate(Bundle savedInstanceState)
  5. {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.main);
  8. if (isNetworkAvailable(ClassTestDemoActivity.this))
  9. {
  10. Toast.makeText(getApplicationContext(), "当前有可用网络!", Toast.LENGTH_LONG).show();
  11. }
  12. else
  13. {
  14. Toast.makeText(getApplicationContext(), "当前没有可用网络!", Toast.LENGTH_LONG).show();
  15. }
  16. }
  17.  
  18. /**
  19. * 检查当前网络是否可用
  20. *
  21. * @param context
  22. * @return
  23. */
  24.  
  25. public boolean isNetworkAvailable(Activity activity)
  26. {
  27. Context context = activity.getApplicationContext();
  28. // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
  29. ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  30.  
  31. if (connectivityManager == null)
  32. {
  33. return false;
  34. }
  35. else
  36. {
  37. // 获取NetworkInfo对象
  38. NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
  39.  
  40. if (networkInfo != null && networkInfo.length > 0)
  41. {
  42. for (int i = 0; i < networkInfo.length; i++)
  43. {
  44. System.out.println(i + "===状态===" + networkInfo[i].getState());
  45. System.out.println(i + "===类型===" + networkInfo[i].getTypeName());
  46. // 判断当前网络状态是否为连接状态
  47. if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED)
  48. {
  49. return true;
  50. }
  51. }
  52. }
  53. }
  54. return false;
  55. }
  56. }

控制台打印出的结果:

Android中判断当前网络是否可用的更多相关文章

  1. Android中判断网络连接是否可用及监控网络状态

    Android中判断网络连接是否可用及监控网络状态 作者: 字体:[增加 减小] 类型:转载 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限,接下来详细介绍Android ...

  2. Android判断当前网络是否可用--示例代码

    Android判断当前网络是否可用--示例代码 分类: *07 Android 2011-05-24 13:46 7814人阅读 评论(4) 收藏 举报 网络androiddialogmanagern ...

  3. Android 中判断网络状态

    首先在AndroidManifest.xml添加权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_ ...

  4. Android检测网络状态,判断当前网络是否可用

    用户手机当前网络可用:WIFI.2G/3G网络,用户打开与不打开网络,和是否可以用是两码事.可以使用指的是:用户打开网络了并且可以连上互联网进行上网. 检测当前网络是否可用,代码如下: /** * 检 ...

  5. Android之判断设备网络连接状态,并判断连接方式

    在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络.判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线 ...

  6. Android中的异步网络请求

    本篇文章我们来一起写一个最基本的Android异步网络请求框架,借此来了解下Android中网络请求的相关姿势.由于个人水平有限,文中难免存在疏忽和谬误,希望大家可以指出,谢谢大家:) 1. 同步网络 ...

  7. Android中判断字符是否为中文、韩文、日文

    我们经常需要在程序中判断一个字符是否为CJK(Chinese.Japanese.Korean)语言的字符. 例如,在Contacts里面程序需要判断联系人姓名的所属语言. 今天为大家介绍一种NameS ...

  8. Android之判断当前网络状态

    /** * 检测网络是否可用 * @return */ public boolean isNetworkConnected() { ConnectivityManager cm = (Connecti ...

  9. android中判断网络连接是否可用

    一.判断网络连接是否可用 public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (C ...

随机推荐

  1. 最最最简单的轮播图(JQuery)

    html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  2. jqury.jqzoom插件--放大镜

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  3. linux服务器挂载第二块磁盘图文解说

    文章来源:http://www.cndns.com/help/help_con.aspx?hid=394 Linux磁盘挂载是比较常见的管理操作之一.我司橙云预装的linux系统有2块盘,一块为系统盘 ...

  4. 关于64位WIN7下正确建立JAVA开发环境(转

    1.下载并安装JDK(地址:http://www.oracle.com/technetwor ... ownload-400750.html     先在“Accept License Agreeme ...

  5. hdu----(4301)Divide Chocolate(状态打表)

    多校综合排名前25名的学校请发送邮件到HDUACM@QQ.COM,告知转账信息(支付宝或者卡号) Divide Chocolate Time Limit: 2000/1000 MS (Java/Oth ...

  6. C语言中static变量详解

    Static翻译出来是“静态”“静止”的意思,在C语言中的意思其实和它的本意差不多,表示“静态”或者“全局”的意思,用来修饰变量和函数.经static修饰过后的变量或者函数的作用域或者存储域会发生变化 ...

  7. 解析 MACH_O 文件

    现在做iOS开发的挺多,了解一下在苹果平台上程序运行的原理 解析 MACH_O 文件 这篇文章描述了如何解析 Mach-O 文件并稍微解释了一下它的格式.这不是一份权威指南,不过当你不知从何开始时,它 ...

  8. 实验一 Java开发环境的熟悉境的熟悉

    - 运行结果: (一)命令行下Java程序开发 (二)Eclipse下Java程序开发.调试 设置断点和单步运行 单步运行:Step Into(快捷捷F5)和Step Over(快捷捷F5) 使程序直 ...

  9. lucene字典实现原理——FST

    转自:http://www.cnblogs.com/LBSer/p/4119841.html 1 lucene字典 使用lucene进行查询不可避免都会使用到其提供的字典功能,即根据给定的term找到 ...

  10. ext afteredit

    ext afteredit详解 grid.on("afteredit",afterEidt,grid); function(obj) { obj.row;;//修改过的行从0开始 ...