APP下载

基于Android系统广播机制下的网络状态变化提醒APP的实现

2015-03-23东莞理工学校欧阳元东

电子世界 2015年23期
关键词:网络连接接收器广播

东莞理工学校 欧阳元东

移动互联网技术是当今最有生命力的信息技术。智能手机作为一种潮流,冲击着人们的生活、工作和学习习惯,深刻地影响着当今世界。智能手机诸多功能和应用来娱乐和方便大众生活,但在使用某些全屏软件、浏览网络信息、下载软件或者上传重要文件时如果发生诸如网络连接断开,网络连接种类发生变化,如何才能及时提醒给用户呢?为了实现这个功能,开发需要使用基于Android环境下的系统广播技术开发该功能APP。

1 Broad Cast Receiver简介

Android系统已经成为全球应用最广泛的手机操作系统,它开发性的特点让用户自身手机私人订制的功能成为可能。Android系统的四大组件之一Broad Cast Receiver是一种全局监听器,用于监听系统全局的广播消息。因此,它可以非常方便地实现系统中不同组件之间的通信,也广泛运用在应用程序之间的传送信息的机制。在Android里面有各种各样的系统广播,比如电池的使用状态,电话的接收和短信的接收都会产生一个广播,应用程序开发者也可以监听这些广播并做出程序逻辑的处理。本APP的实现关键就是当网络状态发生变化时,Android系统就会发送一条系统广播,开发者接收之后,检测网络变化的情况,就可以及时通知用户,从而实现网络变化及时提醒的功能。

2 网络变化及时提醒功能APP的实现

该APP的功能就是当网络状态发生变化时,在用户的界面最前面显示“网络已经变化,当前网络是:wifi”或者“当前没有可用网络”等信息。因此,我们需要建立一个项目工程。整个开发流程分创建工程,编写接收器继承Broadcast Receiver基类,注册接收器,赋予访问网络状态权限,真机调试四步。

2.1 新建项目connectivitybroadcastreceiver

ConnectivityBroadcastReceiver的Activity绑定的布局文件比较简单,在此略写。

2.2 编写接收器

编写一个ConnectChange类,它继承Broadcast Receiver,实现onReceive()方法。代码如下:

if(intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)){

ConnectivityManager cm=(ConnectivityManager)conte xt.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo info=cm.getActiveNetworkInfo();

if(info!=null&& info.isAvailable()){

String netName=info.getTypeName().toString();

Toast.makeText(context, "网络已经改变,网络类型是:"+netName,Toast.LENGTH_LONG).show();

}else{

Toast.makeText(context, "当前没有网络可用哦!!!",Toast.LENGTH_LONG).show(); }

上述代码大概意思是当intent中意图行为是Connectivity Manager.CONNECTIVITY_ACTION,就发送系统广播的action。注意当网络状态不变化的话是不发这个action的,网络变化状态变化后Android系统立刻发送这个action,当接收器里有相同的action,便会收到网络改变的广播。context.getSystemService(Context.CONNECTIVITY_SERVICE)是接收到系统广播赋值给cm,取出cm中的当前网络信息给info变量,如果变量不为空且网络可用,则判断是哪个类型网络并把结果显示出来,否则,提示当前没有网络可用。

3 真机测试

图2

图3

由于Android模拟器中网络网络状态不会发生变化,所以Android不会发生系统广播,因此无法测试,必须用真机调试。运行截图如下:

4 结束语

Android系统发送的系统广播有很多,比如系统时间改变,系统日期改变,系统时区改变,系统启动完成,系统的包被改变,电池电量改变或者低,系统电源被断开等。开发这种接收系统广播,并把系统广播消息及时提醒用户的APP基本步骤跟此APP的步骤基本一致,读者只要学懂就可以举一反三了。

[1] 王雅宁.轻松学Android开发[M].电子工业出版社,2014,6.

[2] 李刚.疯狂Android讲义[M].电子工业出版社,2013,11.

猜你喜欢

网络连接接收器广播
个性化设置 Win10 的网络连接信息
运动想象的大尺度动态功能网络连接
JXG-50S型相敏轨道电路接收器自动测试台
广播发射设备中平衡输入与不平衡输入的转换
新型二取二结构的25Hz微电子相敏接收器数据处理方法研究
网络在现代广播中的应用
论交警广播直播室的构建
中小型网络组建技术
IDT推出超紧凑型无线电源接收器,可节省70%板面积
爸爸也爱听广播