安卓广播动态监听网络工具类

2024-03-09 21:38

本文主要是介绍安卓广播动态监听网络工具类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

为满足日常开发需求,特此奉上,同时记录一下

1 创建 NetBroadcastReceiver类

public class NetBroadcastReceiver extends BroadcastReceiver {public NetChangeListener listener= MainActivity.listener;@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stub// 如果相等的话就说明网络状态发生了变化Log.e("------------", "onReceive: " );if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {int netWorkState = getNetWorkState(context);// 当网络发生变化,判断当前网络状态,并通过NetEvent回调当前网络状态if (listener != null) {listener.onChangeListener(netWorkState);}}}// 自定义接口public interface NetChangeListener {void onChangeListener(int status);}/*** 没有网络*/private static final int NETWORK_NONE = -1;/*** 移动网络*/private static final int NETWORK_MOBILE = 0;/*** 无线网络*/private static final int NETWORK_WIFI = 1;public static int getNetWorkState(Context context) {//得到连接管理器对象ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();//如果网络连接,判断该网络类型if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {if (activeNetworkInfo.getType() == (ConnectivityManager.TYPE_WIFI)) {return NETWORK_WIFI;//wifi} else if (activeNetworkInfo.getType() == (ConnectivityManager.TYPE_MOBILE)) {return NETWORK_MOBILE;//mobile}} else {//网络异常return NETWORK_NONE;}return NETWORK_NONE;}
}

2 在Activity中使用便可

public class MainActivity extends Activity  implements NetBroadcastReceiver.NetChangeListener{public static NetBroadcastReceiver.NetChangeListener listener;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listener=this;if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {//实例化IntentFilter对象IntentFilter filter = new IntentFilter();filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");NetBroadcastReceiver netBroadcastReceiver = new NetBroadcastReceiver();//注册广播接收registerReceiver(netBroadcastReceiver, filter);}}@Overridepublic void onChangeListener(int status) {if (status==0) {Toast.makeText(this, "移动网络", Toast.LENGTH_SHORT).show();} else if (status==1) {Toast.makeText(this, "无线网络", Toast.LENGTH_SHORT).show();} else if (status==-1) {Toast.makeText(this, "没有网络", Toast.LENGTH_SHORT).show();}}
}

直接C V便好 ,有需求可以关注公众号,那里我会及时回答,这边可能会无法及时回复
欢迎关注

这篇关于安卓广播动态监听网络工具类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/792021

相关文章

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

LeetCode:64. 最大正方形 动态规划 时间复杂度O(nm)

64. 最大正方形 题目链接 题目描述 给定一个由 0 和 1 组成的二维矩阵,找出只包含 1 的最大正方形,并返回其面积。 示例1: 输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4 示例2: 输入: 0 1 1 0 01 1 1 1 11 1 1 1 11 1 1 1 1输出: 9 解题思路 这道题的思路是使用动态规划

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

安卓玩机工具------小米工具箱扩展工具 小米机型功能拓展

小米工具箱扩展版                     小米工具箱扩展版 iO_Box_Mi_Ext是由@晨钟酱开发的一款适用于小米(MIUI)、多亲(2、2Pro)、多看(多看电纸书)的多功能工具箱。该工具所有功能均可以免root实现,使用前,请打开开发者选项中的“USB调试”  功能特点 【小米工具箱】 1:冻结MIUI全家桶,隐藏状态栏图标,修改下拉通知栏图块数量;冻结

Windows下php扩展开发c++动态库

PHP扩展开发,从零了解到初步完成一个小项目,经过三天的仔细研究,现整理如下 一、需求介绍 PHP扩展开发,调用自己之前的c++动态库,完成功能 二、项目之前 系统:windows xp  开发工具:vs 2008 web环境:apache2.4  PHP5.3.29-VC9-ts-x86 aphach和PHP 环境之前已经搭建完成 PHP源码:去官网http://www.php.n

LeetCode:3177. 求出最长好子序列 II 哈希表+动态规划实现n*k时间复杂度

3177. 求出最长好子序列 II 题目链接 题目描述 给你一个整数数组 nums 和一个非负整数k 。如果一个整数序列 seq 满足在下标范围 [0, seq.length - 2] 中 最多只有 k 个下标i满足 seq[i] != seq[i + 1] ,那么我们称这个整数序列为好序列。请你返回 nums中好子序列的最长长度。 实例1: 输入:nums = [1,2,1,1,3],