Android连载19-广播机制之网络状态显示

沉舟侧畔千帆进,病树前头万木春。这篇文章主要讲述Android连载19-广播机制之网络状态显示相关的知识,希望能为你提供帮助。
一、我们创建一个新的android项目来进行演示广播机制中是如何?显示网络状态的。
 

package com.example.broadcasttest2; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; ?public class MainActivity extends Activity { private IntentFilter intentFilter; private NetworkChangeReceiver networkChangeReceiver; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intentFilter = new IntentFilter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); networkChangeReceiver = new NetworkChangeReceiver(); registerReceiver(networkChangeReceiver,intentFilter); } @Overrideprotected void onDestroy() {super.onDestroy(); unregisterReceiver(networkChangeReceiver); } class NetworkChangeReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context,Intent intent) {ConnectivityManager connectionMananger = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectionMananger.getActiveNetworkInfo(); if(networkInfo != null & & networkInfo.isAvailable()) {Toast.makeText(context, "network is available", Toast.LENGTH_SHORT).show(); } else {Toast.makeText(context, "network is unavailable", Toast.LENGTH_SHORT).show(); }?}}}?

Android连载19-广播机制之网络状态显示

文章图片

(1)首先建立一个IntentFilter实例,并且接下来添加一个值“andorid.net.conn.CONNECTIVITY_CHANGE的action。为什么要添加它呢??因为当网络状态发生变化的时候,系统会发出一条值为上述的?的消息,也就是说广播接收器?想要监听什么样的广播,这里添加什么值就可以。
(2)我们建立一个内部类,这个内部类继承了android自有的广播接收器,然后进行改写?。
里面的一个onReceive方法,每当网络状态发生变化的时候,这个方法都会得到执行?。
创建一个ConnectionManager实例,然后调用方法,来获取网络状态,存入到NetworkInfo变量?中去。
通过这个变量来进行判断,有网络就显示”网络可获得“,没有网络就显示”网络不可以获得“
(3)接下来创建一个NetworkChangeReceiver实例,然后将广播接收器以及网络状态实例,作为参数,传给上述实例,加以封装?执行。
(4)最后要记得,动态注册的广播接收器一定要去取消注册,这就是Destroy?方法实现。
(5)打开设置进行调节网络状态
 
 
Android连载19-广播机制之网络状态显示

文章图片

 
Android连载19-广播机制之网络状态显示

文章图片

(6)另外有一点说明,android系统为了保证应用程序中的安全性做了规定,如果程序需要去访问一些系统的关键信息,必须在配置文件中声明权限才可以,否则,程序将会直接崩溃,比如这里的查询系统的网络状态,就是需要声明的,打开AndroidManifext.xml文件
 
< ?xml version="1.0" encoding="utf-8"?> < manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.broadcasttest2"android:versionCode="1"android:versionName="1.0" > ?< uses-sdkandroid:minSdkVersion="14"android:targetSdkVersion="19" /> < uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> < applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" > < activityandroid:name=".MainActivity"android:label="@string/app_name" > < intent-filter> < action android:name="android.intent.action.MAIN" /> ?< category android:name="android.intent.category.LAUNCHER" /> < /intent-filter> < /activity> < /application> ?< /manifest>

 
即可完成?声明。
二、源码:
BroadcastTest2
https://github.com/ruigege66/Android/tree/master/BroadcastTest2
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
?
Android连载19-广播机制之网络状态显示

文章图片

【Android连载19-广播机制之网络状态显示】 

    推荐阅读