博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 网络监测
阅读量:5350 次
发布时间:2019-06-15

本文共 2353 字,大约阅读时间需要 7 分钟。

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();        }    }}

 在入口类注册监听

 

转载于:https://www.cnblogs.com/hualuoshuijia/p/6908113.html

你可能感兴趣的文章
Python中的greenlet包实现并发编程的入门教程
查看>>
java中遍历属性字段及值(常见方法)
查看>>
YUI3自动加载树实现
查看>>
kettle导数到user_用于left join_20160928
查看>>
较快的maven的settings.xml文件
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
malloc() & free()
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
关于这次软件以及pda终端的培训
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
新手村之循环!循环!循环!
查看>>
线程安全问题
查看>>
linux的子进程调用exec( )系列函数
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>