android手机网络发生改变系统会发出相应的广播,我们只需要注册该广播就可以实时监测手机网络的变化了。

首先我们创建一个广播NetworkChangedReceiver继承系统广播BroadcastReceiver,在onReceive方法中做对应网络变化的处理逻辑就可以了:

public class NetworkChangedReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {int netWorkStates = NetworkUtil.getNetWorkStates(context);switch (netWorkStates) {case NetworkUtil.TYPE_NONE://断网了break;case NetworkUtil.TYPE_MOBILE://打开了移动网络break;case NetworkUtil.TYPE_WIFI://打开了WIFIbreak;default:break;}}
}

上述代码中使用到了NetworkUtil工具类,详细代码请看NetworkUtil

广播我们已经创建了,接下来注册就可以监听网络状态了,注册广播可以通过代码注册(动态注册)也可以通过清单文件注册(静态注册),下面分别介绍一下:
1. 代码注册:

NetworkChangedReceiver networkChangedReceiver = new NetworkChangedReceiver();
IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(networkChangedReceiver, intentFilter);

注意不要忘记在onDestroy()中解除注册

protected void onDestroy() {unregisterReceiver(networkChangedReceiver);super.onDestroy();
}

2. 清单文件注册:

<receiverandroid:name=".NetworkChangedReceiver"><intent-filter><action android:name="android.net.conn.CONNECTIVITY_CHANGE"/></intent-filter>
</receiver>

两种注册方式均可,可根据项目中实际需求来决定使用其中一种。
警告:

清单文件注册不能适配android7.0及以上(targetSdkVersion ≥ N,清单文件注册失效,亲测没有收到广播)

原因:Android 7.0后台优化  详情请点击

Android 7.0 移除了三项隐式广播(CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO),以帮助优化内存使用和电量消耗。

Android 7.0 应用了以下优化措施:1. 面向 Android 7.0 开发的应用不会收到 CONNECTIVITY_ACTION 广播,即使它们已有清单条目来请求接受这些事件的通知。在  前台运行的应用如果使用 BroadcastReceiver 请求接收通知,则仍可以在主线程中侦听 CONNECTIVITY_CHANGE。2. 应用无法发送或接收 ACTION_NEW_PICTURE 或 ACTION_NEW_VIDEO 广播。此项优化会影响所有应用,而不仅仅是面向 Android 7.0 的应用。

现在不适配Android 7.0应该不可能了,所以大家就不要考虑清单文件注册了,直接代码动态注册就行了。

如果您对Android 7.0这一变更感觉不适应或者变更限制了您开发的需求,Android 框架提供多个解决方案来缓解对这些隐式广播的需求。例如,JobScheduler API 提供了一个稳健可靠的机制来安排满足指定条件(例如连入无限流量网络)时所执行的网络操作。您甚至可以使用JobScheduler 来适应内容提供程序变化。

Android监测手机网络状态变化的广播相关推荐

  1. android 获取手机网络状态

    与网络相关的,就经常要做网络状态判断及信息获取.用到的类ConnectivityManager 和NetworkInfo //获取网络连接管理者ConnectivityManager connecti ...

  2. 采取监测记录网络运行状态_广播播控监测自动化系统改造探析

    1.引言 媒体发展已经步入融媒体时代,广播作为传统媒体,以其制作成本低.时效性强.收听设备简单便捷且不受空间和时间限制的特点,依然拥有其独特地位和优势.因此广播节目播出安全也就显得尤为重要,播出单位必 ...

  3. Android network 手机网络

    Android network 系统中对网络的判断和选在是在Connectivityervice这个服务中来处理的,在系统启动的时候会启动这个系统服务: 系统启动完毕后,ConnectivitySer ...

  4. android检测手机网络连接不上,Android WIFI及手机网络连接情况检查

    手机开发时会涉及到一些需要网络或wifi的操作,有时需要了解情况在进行下一步的操作,如没有网络则用本地缓存,没有wifi则不进行大流量操作(更新APP等). 这里我就说一下我在开发时用到的相关代码. ...

  5. Android 通过WIFI状态监听广播,判断进入指定wifi范围

    原文地址:http://blog.csdn.net/kongxiuqi/article/details/52524500 --------------------------------------- ...

  6. Android监听手机网络变化

    Android监听手机网络变化 手机网络状态发生变化会发送广播,利用广播接收者,监听手机网络变化 效果图 注册广播接收者 <?xml version="1.0" encodi ...

  7. android BLE Peripheral 手机模拟设备发出BLE广播 BluetoothLeAdvertiser

    android 从4.3系统开始可以连接BLE设备,这个大家都知道了.iOS是从7.0版本开始支持BLE.android 进入5.0时代时,开放了一个新功能,手机可以模拟设备发出BLE广播, 这个新功 ...

  8. Android 第十九课 大喇叭--广播机制----动态注册监听网络变化与静态注册实现开机启动

    为了便于进行 系统级别的消息通知,Android引入了一套广播消息机制. 1.广播机制简介: 因为Android中的每个应用程序都可以对自己感兴趣的广播尽心注册,这样程序只会接收自己所关心的广播内容, ...

  9. android开发工具类之获得WIFI IP地址或者手机网络IP

    有的时候我们需要获得WIFI的IP地址获得手机网络的IP地址,这是一个工具类,专门解决这个问题,这里需要两个权限: <uses-permission android:name="and ...

最新文章

  1. Android开发中的Handler和多线程
  2. Java8 Stream 函数式接口
  3. mysql explain insert_MySQL之EXPLAIN 执行计划详解
  4. boost::reinterpret_pointer_cast相关的测试程序
  5. python pdf转word 表格_太赞了!Pdf转Word,我用Python 轻松搞定表格和水印!
  6. POJ3435 Sudoku Checker【谜题+数独】
  7. jquery动态生成的元素添加事件的方法
  8. c++游戏编程 源代码
  9. Chromeedge好用扩展插件分享
  10. 【Matlab】除法取整函数用法
  11. 预充电电路工作原理_课堂 | 为什么锂电池在充电过程中首先要进行预充电
  12. Datablau产品之Kubernetes(K8S)部署
  13. can例程 ecu_ECU程序及CAN总线实现
  14. 什么软件测试苹果手机循环电池,教你如何检测苹果手机电池的损耗
  15. ASP.NET Core : 八.图说管道,唐僧扫塔的故事
  16. 网络(十三)之ACL的高级应用
  17. FPGA基础知识----第三章 第2节 综合和仿真
  18. 基于虚拟机Ubuntu系统下C语言简单编写程序
  19. 映美Jolimark TP108W 打印机驱动
  20. 出租车GPS轨迹数据和手机数据的研究价值

热门文章

  1. html5 自动设置全屏,HTML5全屏(Fullscreen)API详细介绍
  2. 计算机网络技术---万维网
  3. c语言编程协方差,协方差计算的C语言代码
  4. Java程序员需要学什么高级技能
  5. 你心目中的企业应用开发框架该怎样构建?
  6. Java高级程序猿必备的全套超详细面试题和答案
  7. Python客户端开发总结
  8. jdbc如何对mysql数据库进行查询_【转载】通过JDBC对MySQL数据库的增删改查
  9. 求图的割点,割边(啊哈算法)
  10. 网络爬虫软件有哪些?