Android 监听网络状态+源代码

移动开发 Android
开发过程中经常会遇到一种需求,在你的Activity中需要获得网络连接的状态,以便确认下一步的流程,之前设计过一个复杂的方法,后来发现每次网络状态发生变化了都会发广播出来,广播这是个好东西,有了广播,我们就可以灵活的去处理了。

网络状态发生变化的时候,系统会发出 android.net.conn.CONNECTIVITY_CHANGE 广播

手机解锁动作的时候,系统会发出android.intent.action.USER_PRESENT 广播,我这里为了在解锁手机时获取到,所以添加上手机解锁事件广播。

注册Receiver后,就可以在ConnctionChangeReceiver中接收到网络状态变化和手机解锁动作的广播

其次,我们处理接收到的广播,实现方法如下,在onReceive中添加网络状态判断

  1. ConnectivityManager connectMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
  2. NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
  3. NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 

ConnectivityManager 获取当前系统服务信息
getNetworkInfo 分别获取 类型为MOBILE和WIFI两种联网方式的信息。

通过判断mobNetInfo.isConnected() 和 wifiNetInfo.isConnected() 返回的Boolean 布尔值来确定当前联网状态。

  1. if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {// unconnect network 
  2. else {// connect network 

这里只添加了当前是否连接网络,如果需要区分是数据还是WIFI连接,可以分别判断。

这里要注意,添加Android permission访问权限http://mobile.51cto.com/aprogram-386433.htm

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

 以上就是Android 监听网络状态的代码实现过程。

 

责任编辑:闫佳明 来源: cnblogs
相关推荐

2015-08-07 15:42:21

网络监听源码

2021-04-15 09:18:57

鸿蒙HarmonyOS应用

2009-04-03 08:28:39

2011-05-26 14:17:16

Android 源代码

2014-11-06 09:31:20

Android 5.0Google

2010-02-04 10:58:29

Android 源代码

2010-02-05 18:00:18

Android源代码

2011-11-15 10:16:41

Android 4.0Google

2010-03-02 10:08:28

Android源代码

2010-01-28 15:49:17

Android判断网络

2010-03-05 14:38:46

Android智能手机

2009-05-30 09:19:44

AndroidGoogle移动OS

2011-10-21 09:24:13

谷歌Android 4.0源代码

2015-10-08 09:03:18

Android6.0源代码

2010-03-03 17:19:48

Android

2017-09-18 22:55:46

GoogleAndroidRTDB

2014-07-03 13:51:10

Android LAndroid L源码

2021-05-18 14:56:58

网络安全数据泄露黑客

2018-12-13 12:50:03

Android 源码Fuchsia

2011-09-13 18:01:09

Eclipse And
点赞
收藏

51CTO技术栈公众号