android 监听网络连接状态的变化
2015-07-19 09:57
701 查看
在android开发中,时常要对网络连接状态变化的事件作出适当的处理。处理方式可通过监听android.net.conn.CONNECTIVITY_CHANGE广播实现。
记录处理代码如下:
第一步,实现广播处理逻辑:
第二步,注册广播(这里采取动态注册)
第三步,添加消息处理逻辑:
记录处理代码如下:
第一步,实现广播处理逻辑:
[code]private BroadcastReceiver mConnectReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub //Toast.makeText(context, intent.getAction(), 1).show(); ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mobileInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifiInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); NetworkInfo activeInfo = manager.getActiveNetworkInfo(); if(wifiInfo.isConnected()){ handler2.sendEmptyMessage(MSG_TYPE_WIFI_CONNECTED); } else{ handler2.sendEmptyMessage(MSG_TYPE_WIFI_DISCONNECTED); } String active; if(activeInfo != null)//如果无网络连接activeInfo为null active = activeInfo.getTypeName(); else active ="null"; Toast.makeText(context, "mobile:"+mobileInfo.isConnected()+"\n"+"wifi:"+wifiInfo.isConnected() +"\n"+"active:"+active, 1).show(); } };
第二步,注册广播(这里采取动态注册)
[code]private void registerConnect() { IntentFilter mWifiFilter = new IntentFilter(); mWifiFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); mActivity.registerReceiver(mConnectReceiver, mWifiFilter); } private void unRegisterConnect() { mActivity.unregisterReceiver(mConnectReceiver); }
第三步,添加消息处理逻辑:
[code]public Handler handler2 = new Handler(){ @Override public void handleMessage(Message msg){ Log.i("TEST", "WramFragment::handleMessage:"+msg.toString()); super.handleMessage(msg); //只要执行到这里就关闭对话框 switch(msg.what){ case MSG_TYPE_WIFI_CONNECTED: WifiInfo info= mWifiAdmin.getConnectionInfo(); String ssid = (info==null)?"null":info.getSSID(); //todo break; case MSG_TYPE_WIFI_DISCONNECTED: //todo break; default: break; } } };
相关文章推荐
- Android 判断网络连接情况
- 《Unix/Linux网络日志分析与流量监控》获2015年度最受读者喜爱的IT图书奖
- TCP/IP网络简介(来自与51CTO学院视频授课内容)
- http://dl-ssl.google.com/android上不去解决方案
- TCP、HTTP与SOCKET连接原理
- Unity多玩家网络游戏开发教程1章Unity带有网络功能
- ntop监控系统网络状态-安装配置
- IEEE802系列标准小结
- 微软“小冰”识狗与人工神经网络(IV)
- 面试总结 转http://blog.csdn.net/ccc20134/article/details/46919189
- python windows下通过SSH获取linux系统cpu、内存、网络使用情况
- 黑马程序员————Java基础日常笔记---网络编程
- android打包准备:混淆第三方jar包(Gson, greenDao,sharesdk,UIL,高德地图, unity,pinyin4j,async http,JPush,EventBus等)
- HttpSessionListener的用法
- android http post
- 查询网络图片
- linux系统网络命令(六)
- NFS网络文件共享服务
- 图解HTTP
- Apache Web Server -> httpd的HTTP的多路处理模块MPM