public class NetWorkStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) { System.out.println("网络状态发生变化");
//检测API是不是小于23,因为到了API23之后getNetworkInfo(int networkType)方法被弃用
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) { //获得ConnectivityManager对象
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); //获取ConnectivityManager对象对应的NetworkInfo对象
//获取WIFI连接的信息
NetworkInfo wifiNetworkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
//获取移动数据连接的信息
NetworkInfo dataNetworkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifiNetworkInfo.isConnected() && dataNetworkInfo.isConnected()) {
Toast.makeText(context, "WIFI已连接,移动数据已连接", Toast.LENGTH_SHORT).show();
} else if (wifiNetworkInfo.isConnected() && !dataNetworkInfo.isConnected()) {
Toast.makeText(context, "WIFI已连接,移动数据已断开", Toast.LENGTH_SHORT).show();
} else if (!wifiNetworkInfo.isConnected() && dataNetworkInfo.isConnected()) {
Toast.makeText(context, "WIFI已断开,移动数据已连接", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "WIFI已断开,移动数据已断开", Toast.LENGTH_SHORT).show();
}
//API大于23时使用下面的方式进行网络监听
}else { System.out.println("API level 大于23");
//获得ConnectivityManager对象
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); //获取所有网络连接的信息
Network[] networks = connMgr.getAllNetworks();
//用于存放网络连接信息
StringBuilder sb = new StringBuilder();
//通过循环将网络信息逐个取出来
for (int i=0; i < networks.length; i++){
//获取ConnectivityManager对象对应的NetworkInfo对象
NetworkInfo networkInfo = connMgr.getNetworkInfo(networks[i]);
sb.append(networkInfo.getTypeName() + " connect is " + networkInfo.isConnected());
}
Toast.makeText(context, sb.toString(),Toast.LENGTH_SHORT).show();
}
}
}

在入口类注册监听

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

最新文章

  1. MySQL 体系结构
  2. 【SharePoint学习笔记】第2章 SharePoint Windows PowerShell 指南
  3. [No000052]大蒜怎么吃最美容?吃大蒜的功效及禁忌
  4. ejb3: message drive bean(MDB)示例
  5. Bindless Textures
  6. java基础学习05(面向对象基础01)
  7. vb6 枚举对象属性
  8. [C#] 與Android共舞–手機post資料給Server (转帖)
  9. MySQL主从复制与读写分离 --非原创
  10. RectAnimation用于在DrawingVisual画进度条
  11. Repository模式介绍汇总
  12. 关于 RecastNavigation 寻路结果异常的问题。
  13. $parse , $interpolate ,$complie , $destroy
  14. JS——无缝滚动
  15. 关于ThreadLocal和一般的线程同步的详细解释
  16. vue-cli脚手架npm相关文件解读(2)webpack.prod.conf.js
  17. TensorFlow从1到2(七)线性回归模型预测汽车油耗以及训练过程优化
  18. 转 tomcat+nginx+redis实现均衡负载、session共享(二)
  19. C#根据进程名称获取进程的句柄?
  20. 使用IntelliJ IDEA 搭建 spring mvc开发环境

热门文章

  1. ORACLE学习笔记 translate,REGEXP_replace
  2. codeforces水题100道 第三题 Codeforces Beta Round #47 A. Domino piling (math)
  3. 简单的Excel导入(上传、解析、持久化)
  4. 原:android4.2.2蓝牙源码阅读--bluedroid部分
  5. IOS多线程之序
  6. TCP数据传输过程详解
  7. 【Nginx系列】Nginx之location
  8. excel多个sheet表拆分成独立的excel文件
  9. hihoCoder挑战赛28 题目2 : 二进制翻转
  10. 本地项目通过github客户端上传到github网站上