在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒。一般可以通过ConnectivityManager来完成该工作。
ConnectivityManager有四个主要任务:
1、监听手机网络状态(包括GPRS,WIFI, UMTS等)
2、手机状态发生改变时,发送广播
3、当一个网络连接失败时进行故障切换
4、为应用程序提供可以获取可用网络的高精度和粗糙的状态
当我们要在程序中监听网络状态时,只要以下几个步骤即可:
1、定义一个Receiver重载其中的onReceive函数,在其中完成所需要的功能,如根据WIFI和GPRS是否断开
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.Handler;
public class NetstateReceiver extends BroadcastReceiver {
private Handler mHandler;
private Activity mAct;
private NetstateReceiver mReceiver;
public final static int IS_CONNECTED = 5;
public final static int IS_NOT_CONNECTED = 6;
private NetstateReceiver()
{
super();
}
public NetstateReceiver(Handler handler,Activity act)
{
mHandler = handler;
mAct = act;
if(mReceiver == null)
mReceiver = new NetstateReceiver();
}
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(!gprs.isConnected() && !wifi.isConnected())
{
mHandler.sendEmptyMessage(IS_NOT_CONNECTED);
}
else
{
mHandler.sendEmptyMessage(IS_CONNECTED);
}
}
public void register()
{
IntentFilter filter = new IntentFilter(Context.CONNECTIVITY_SERVICE);
mAct.registerReceiver(mReceiver, filter);
}
public void unregister()
{
mAct.unregisterReceiver(mReceiver);
}
}
分享到:
相关推荐
Android通过使用广播监听网络状态的改变,更多请看我的博客:http://blog.csdn.net/xiayiye5/article/details/79397088
1、用service和broadcastReceiver来时时监听网络状态。 2、判断网络连接状态的方法(如mobile网络和wifi网络) 3、用广播WifiManager.NETWORK_STATE_CHANGED_ACTION和ConnectivityManager.CONNECTIVITY_ACTION都行,...
Android监听网络状态
使用BroadcastReceiver监听网络状态 当网络连接或者断开会弹出Toast提示,同时System.out打印出连接信息 NetUtils中有四个方法可以检测网络是否连接、wifi是否连接、移动网络是否连接、连接类型
通过注册BroadcastReceiver实时监听网络状态,实时更新当前Activity
实时监听网络状态.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android高级应用源码-android监听网络状态Demo.zip
包含在fragment中的应用
【Android】Android 监听网络状态+源代码
Android高级应用源码-android监听网络状态Demo.rar
android监听网络状态Demo.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android即时网络监听库,只需几行代码就可得到当前网络状态为wifi还是GPRS或是网络连接还是网络断开,监听犹如EventBus那般优雅。
搜了一下居然没几个网络监听的源码,索性就自己写一个上传上来,希望可以帮到大家
android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么...
Android 广播监听网络状态 我们在做多线程下载的时候,或者是在加载h5界面的时候,常常会遇到网络状态不好或者断网的时候,在这或者当我们的应用程序启动没有退出的时候,我们就需要对网络状态监听加以判断。 这...
网络变化时系统会发出广播。通过监听这个广播,利用接口回调通知activity做相应的操作。判断网络状态
网络状态监听
Android 监听网络状态方法详解 一.加入网络权限 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。 二.判断手机网络的几个方案 1)判断是否有网络连接 public boolean isMobileConnected(Context...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
Android 网络状态监听 QQ