1. public static boolean isNetworkAvailable(Context context) {
  2. ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
  3. if (connectivity == null) {
  4. Log.i("NetWorkState", "Unavailabel");
  5. return false;
  6. } else {
  7. NetworkInfo[] info = connectivity.getAllNetworkInfo();
  8. if (info != null) {
  9. for (int i = 0; i < info.length; i++) {
  10. if (info[i].getState() == NetworkInfo.State.CONNECTED) {
  11. Log.i("NetWorkState", "Availabel");
  12. return true;
  13. }
  14. }
  15. }
  16. }
  17. return false;
  18. }

上面这个方法就是判断网络是否连接的代码,返回true表示有网络,返回false表示无网络。
在Android网络应用程序开发中,经常要判断网络连接是否可用,因此经常有必要监听网络状态的变化。android的网络状态监听可以用
BroadcastReceiver来接收网络状态改变的广 播,具体实现如下:

  1. @Override
  2. public void onReceive(Context context, Intent intent) {
  3. Log.e(TAG, "网络状态改变");
  4. boolean success = false;
  5. //获得网络连接服务
  6. ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
  7. // State state = connManager.getActiveNetworkInfo().getState();
  8. State state = connManager.getNetworkInfo(
  9. ConnectivityManager.TYPE_WIFI).getState(); // 获取网络连接状态
  10. if (State.CONNECTED == state) { // 判断是否正在使用WIFI网络
  11. success = true;
  12. }
  13. state = connManager.getNetworkInfo(
  14. ConnectivityManager.TYPE_MOBILE).getState(); // 获取网络连接状态
  15. if (State.CONNECTED != state) { // 判断是否正在使用GPRS网络
  16. success = true;
  17. }
  18. if (!success) {
  19. Toast.makeText(LocationMapActivity.this, "您的网络连接已中断", Toast.LENGTH_LONG).show();
  20. }
  21. }

在Activity的onCreate中:

    1. //注册网络监听
    2. IntentFilter filter = new IntentFilter();
    3. filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
    4. registerReceiver(mNetworkStateReceiver, filter);
    5. //在Activity中的onDestroy中:'
    6. unregisterReceiver(mNetworkStateReceiver); //取消监听

Android 监控网络状态的更多相关文章

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

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

  2. Android获取网络状态

    Android获取网络状态 学习自 https://developer.android.google.cn/reference/android/net/ConnectivityManager http ...

  3. 用c#监控网络状态

    1.查询当前网络状态: using Microsoft.VisualBasic.Devices; //判断当前网络连接状态 Network nw=new Network(); if(nw.IsAvai ...

  4. C# 利用性能计数器监控网络状态

    本例是利用C#中的性能计数器(PerformanceCounter)监控网络的状态.并能够直观的展现出来 涉及到的知识点: PerformanceCounter,表示 Windows NT 性能计数器 ...

  5. android——判断网络状态

    平常我们玩qq的时候我们没联网 ,qq上面回显示"网络连接不给力,请检查网络连接"那么它是 通过什么方式判断网络是否连接的呢? 下面将写个案例展示如何检查网络连接状态的 由于我们这 ...

  6. Android判断网络状态

    package com.ch.services; import com.ch.utils.NetWorkUtils; import android.app.Service; import androi ...

  7. 一款监控网络状态的好工具- Smokeping

    最近工作中需要监测某个分公司到IDC机房的网络情况,到网络上找了不少软件,发现一款叫smokeping的开源软件还不错,它是rrdtool的作者制作的,在图形显示方面很漂亮,可以用来很好的检测网络状态 ...

  8. Android杂谈--网络状态判断

    许多联网应用都在开始运行的时候检查当前网络状态,如果没有开启则去开启它,记录一下以前写程序时的网络检查,发现人的记忆力真是有限,总是隔段时间久忘记,所以记录下来是最好的记忆. 我们可以在一开始启动程序 ...

  9. iOS实时监控网络状态的改变

    在网络应用中,有的时候需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体 ...

随机推荐

  1. get the text value of a selected option.

    <select id="myselect"> <option value="1">Mr</option> <optio ...

  2. iOS开发中的常用宏定义

    在iOS开发的过程中合理的使用宏定义能够极大提高编码的速度,下面是一些常用的宏定义,部分内容来自互联网 Log // 调试状态, 打开LOG功能 #ifdef DEBUG #define GLLog( ...

  3. iOSUI基础——懒加载

    1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 ...

  4. caption标签,为表格添加标题和摘要

    表格还是需要添加一些标签进行优化,可以添加标题和摘要.代码如下: 摘要 摘要的内容是不会在浏览器中显示出来的.它的作用是增加表格的可读性(语义化),使搜索引擎更好的读懂表格内容,还可以使屏幕阅读器更好 ...

  5. iOS开发,新手入门指导

    在做了近两年wp,安卓开发之后,某一天突然决定投身iOS的开发之中. 因为一直用的mac,做wp开发的时候都用双系统,vs开久了,就会比较烫,这点让人不爽.后来更多地做安卓,直接mac下开发,很舒适的 ...

  6. C#:装箱和拆箱相关知识整理

    1.装箱和拆箱是一个抽象的概念   2. 装箱是将值类型转换为引用类型 ;   拆箱是将引用类型转换为值类型   利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的值相互转换,将值类型 ...

  7. ThinkPHP 使用极光推送给ios推送消息

    HTML <div id="wrap"><a href="<{:U('Push/pushData')}>">推送</a ...

  8. 【转】关于TP3.2 验证码不显示的问题

    在调用验证码之前加上 ob_clean(); 不显示验证码的代码: public function verify(){                $verify = new \Think\Veri ...

  9. wamp虚拟机配置

    1.找到httpd.conf 里面:找到 # Virtual hosts 开启虚拟机Include conf/extra/httpd-vhosts.conf 2  编辑httpd-vhosts.con ...

  10. UVA - 1614 Hell on the Market(贪心)

    Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Descript ...