五陵年少金市东,银鞍白马渡春风。这篇文章主要讲述广播小案例-监听系统网络状态 --Android开发相关的知识,希望能为你提供帮助。
本例通过广播实现简单的监听系统网络状态改变的小案例。
1、案例效果演示
文章图片
当手机连网后,系统提示“已连接网络”,【广播小案例-监听系统网络状态 --Android开发】
文章图片
当手机断网后,系统提示“当前网络不可用”。 2、案例实现
在主活动中动态注册广播,然后写一个内部类来接收系统广播,下面是相关文件的核心代码: MainActivity.java:
public class MainActivity extends AppCompatActivity {
private IntentFilter intentFilter;
private NetworkChangeReceiver networkChangeReceiver;
@Override
protected 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);
}
/**
* 活动被关闭后执行
*/
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(networkChangeReceiver);
}
class NetworkChangeReceiver extends BroadcastReceiver {//定义一个内部类用来接收广播
@Override
public void onReceive(Context context, Intent intent) {
//Toast.makeText(context, "网络状态发生改变!",
//Toast.LENGTH_SHORT).show();
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null & & networkInfo.isAvailable()) {
Toast.makeText(context, "已连接网络!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "当前网络不可用!", Toast.LENGTH_SHORT).show();
}
}
}
}
另外一定要配置网络相关的权限,在这里需要在AndroidManifest.xml中添加下面的代码:
< uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
意思是允许程序访问有关GSM网络信息。
推荐阅读
- Android studio 创建安卓项目hello
- BeanFactory和ApplicationContext
- [译]Kubernetes 分布式应用部署和人脸识别 app 实例
- [Android]实现点击持续录音,松开结束录音,并实现随着分贝的大小改变图片
- app优化篇
- Android 发送邮件以及定时发送邮件的实现
- 13最新安卓Xamarin绑定相关填坑之旅
- 自定义广播(BroadcastReceiver)事件 --Android开发
- 6.移动端App安装包的测试用例