Android ConnectivityManager详解
ConnectivityManager类,回答了关于网络连接的状态查询。它还通知应用程序,当网络连接的变化。可以通过如下调用得到这个类的一个实例Context.getSystemService(Context.CONNECTIVITY_SERVICE)
。
这个类的主要职责是:
- 监控网络连接(无线网络连接,GPRS,UMTS等)
- 发送广播意图时的网络连接的变化
- 尝试“故障转移”到另一个网络时,连接到网络丢失
- 提供了一个API,允许应用程序查询可用网络的粗粒或细粒状态
- 提供了一个API,允许为他们的数据流量的应用程序的要求,选择网络
方法
getNetworkInfo(Network network)
返回有关特定网络连接状态的信息。 |
注:getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象。以下介绍系统相应的服务。详见:getSystemService详见
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详解相关推荐
- ConnectivityManager详解
常用方法: 1.监听网络连接(Wi-Fi, GPRS, UMTS, etc),当网络发生改变时发送广播(broadcase)进行通知 2.通过该类查询网络连接状态 常用方法: getActiveNet ...
- 【转】Android菜单详解——理解android中的Menu--不错
原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...
- Android菜单详解——理解android中的Menu
前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...
- Android LayoutInflater详解
Android LayoutInflater详解 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类 似于findViewById().不同点是LayoutInflater是用来 ...
- android Fragments详解
android Fragments详解一:概述 android Fragments详解二:创建Fragment 转载于:https://my.oschina.net/liangzhenghui/blo ...
- android WebView详解,常见漏洞详解和安全源码(下)
上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑. 上篇:android WebView详解,常见漏洞详解和安全源码(上) 转载请注明出处:http ...
- android WebView详解,常见漏洞详解和安全源码(上)
这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析. 由于博客内容长度,这次将分为上下两篇,上篇详解 WebView ...
- android子视图无菜单,Android 菜单详解
Android中菜单分为三种,选项菜单(OptionMenu),上下文菜单(ContextMenu),子菜单(SubMenu) 选项菜单 可以通过两种办法增加选项菜单,一是在menu.xml中添加,该 ...
- Android StateFlow详解
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/121913352 本文出自[赵彦军的博客] 文章目录 系列文章 一.冷流还是热流 S ...
最新文章
- Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式
- h.264 rtp打包
- @async 如何返回list_图解 Await 和 Async
- 解决CodeIgniter大量查询sql时占用内存大问题
- python类和对象的定义_python类与对象基本语法
- Spring AOP实例——异常处理和记录程序执行时间
- read命令_dbatools Read-DbaBackupHeader命令的便捷功能
- 使用多线程与不使用多线程访问同一个网址实例对比
- CSDN的markdown编辑器详细使用说明、语法快速索引手册
- mysql脱库_mysql 脱裤(脱库)通用脚本
- 上传JSPX文件绕过网站后缀名检查
- C++ 多线程CreateThread LPVOIDlpParameter传递多个参数
- android 如何播放音频,android如何播放和录制音频
- deactive(Deactive breakpoint)
- php面试你离职的原因,如何在面试中描述你的离职原因?
- 1790: 九九八十一
- 修复Adobe Flash Player
- 新职业人才缺口近千万,90后最担心失业;字节跳动回应TikTok被收购传闻;Twitter公布账号劫持事故细节 | EA周报...
- php操作主从mysql_PHP 操作MySQL数据库
- linux下搭建游戏服务器运行环境
热门文章
- 如何对数据目标进行分析
- 物联卡与sim卡有什么差别性的不同
- android最优化启动画面,Android启动页黑屏及最优解决方案
- mysql utf-8转utf8mb4_MySQL UTF8 转为 utf8mb4
- oracle 9.2 imp 表空间,如何imp到不同于原表空间的表空间?
- mysql+workbench+6.1+下载,MySQL Workbench 6.3.1 发布下载
- 词嵌入word2vec、字词嵌入fastText、全局词嵌入Glove直接的联系与关系
- Tensorflow如何读取文件
- GO语言学习之路14
- linux常用shell命令之文件操作命令