ConnectivityManager类,回答了关于网络连接的状态查询。它还通知应用程序,当网络连接的变化。可以通过如下调用得到这个类的一个实例Context.getSystemService(Context.CONNECTIVITY_SERVICE)

这个类的主要职责是:

  1. 监控网络连接(无线网络连接,GPRS,UMTS等)
  2. 发送广播意图时的网络连接的变化
  3. 尝试“故障转移”到另一个网络时,连接到网络丢失
  4. 提供了一个API,允许应用程序查询可用网络的粗粒或细粒状态
  5. 提供了一个API,允许为他们的数据流量的应用程序的要求,选择网络
下面举例一个判断当前是否有网络的代码(示例来自《第一行代码·第二版》)

方法

  getNetworkInfo(Network network)

返回有关特定网络连接状态的信息。

注:getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象。以下介绍系统相应的服务。详见:getSystemService详见

MainActivity文件(略过外部包)
public class MainActivity extends AppCompatActivity {private IntentFilter intentFilter;private NetworkChangeReceiver networkChangeReceiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);intentFilter=new IntentFilter();intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");networkChangeReceiver = new NetworkChangeReceiver();registerReceiver(networkChangeReceiver,intentFilter);}@Overrideprotected void onDestroy(){super.onDestroy();unregisterReceiver(networkChangeReceiver);}class NetworkChangeReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent){ConnectivityManager connectivityManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo networkInfo=connectivityManager.getActiveNetworkInfo();if(networkInfo!=null&&networkInfo.isAvailable()){Toast.makeText(context,"network is available",Toast.LENGTH_SHORT).show();}else{Toast.makeText(context,"network is unavailable",Toast.LENGTH_SHORT).show();}}}
}

另外,这里访问系统的网络状态是需要声明权限的,打开AndroidManifest.xml文件,加入如下代码:

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

Android ConnectivityManager详解相关推荐

  1. ConnectivityManager详解

    常用方法: 1.监听网络连接(Wi-Fi, GPRS, UMTS, etc),当网络发生改变时发送广播(broadcase)进行通知 2.通过该类查询网络连接状态 常用方法: getActiveNet ...

  2. 【转】Android菜单详解——理解android中的Menu--不错

    原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...

  3. Android菜单详解——理解android中的Menu

    前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...

  4. Android LayoutInflater详解

    Android LayoutInflater详解 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类 似于findViewById().不同点是LayoutInflater是用来 ...

  5. android Fragments详解

    android Fragments详解一:概述 android Fragments详解二:创建Fragment 转载于:https://my.oschina.net/liangzhenghui/blo ...

  6. android WebView详解,常见漏洞详解和安全源码(下)

    上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑.  上篇:android WebView详解,常见漏洞详解和安全源码(上)  转载请注明出处:http ...

  7. android WebView详解,常见漏洞详解和安全源码(上)

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  由于博客内容长度,这次将分为上下两篇,上篇详解 WebView ...

  8. android子视图无菜单,Android 菜单详解

    Android中菜单分为三种,选项菜单(OptionMenu),上下文菜单(ContextMenu),子菜单(SubMenu) 选项菜单 可以通过两种办法增加选项菜单,一是在menu.xml中添加,该 ...

  9. Android StateFlow详解

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/121913352 本文出自[赵彦军的博客] 文章目录 系列文章 一.冷流还是热流 S ...

最新文章

  1. Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式
  2. h.264 rtp打包
  3. @async 如何返回list_图解 Await 和 Async
  4. 解决CodeIgniter大量查询sql时占用内存大问题
  5. python类和对象的定义_python类与对象基本语法
  6. Spring AOP实例——异常处理和记录程序执行时间
  7. read命令_dbatools Read-DbaBackupHeader命令的便捷功能
  8. 使用多线程与不使用多线程访问同一个网址实例对比
  9. CSDN的markdown编辑器详细使用说明、语法快速索引手册
  10. mysql脱库_mysql 脱裤(脱库)通用脚本
  11. 上传JSPX文件绕过网站后缀名检查
  12. C++ 多线程CreateThread LPVOIDlpParameter传递多个参数
  13. android 如何播放音频,android如何播放和录制音频
  14. deactive(Deactive breakpoint)
  15. php面试你离职的原因,如何在面试中描述你的离职原因?
  16. 1790: 九九八十一
  17. 修复Adobe Flash Player
  18. 新职业人才缺口近千万,90后最担心失业;字节跳动回应TikTok被收购传闻;Twitter公布账号劫持事故细节 | EA周报...
  19. php操作主从mysql_PHP 操作MySQL数据库
  20. linux下搭建游戏服务器运行环境

热门文章

  1. 如何对数据目标进行分析
  2. 物联卡与sim卡有什么差别性的不同
  3. android最优化启动画面,Android启动页黑屏及最优解决方案
  4. mysql utf-8转utf8mb4_MySQL UTF8 转为 utf8mb4
  5. oracle 9.2 imp 表空间,如何imp到不同于原表空间的表空间?
  6. mysql+workbench+6.1+下载,MySQL Workbench 6.3.1 发布下载
  7. 词嵌入word2vec、字词嵌入fastText、全局词嵌入Glove直接的联系与关系
  8. Tensorflow如何读取文件
  9. GO语言学习之路14
  10. linux常用shell命令之文件操作命令