Android中监听网络状态
2012-07-27 15:25
295 查看
在开发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中监听判断网络连接状态的方法
- 在android上监听网络状态的变更
- 【Android 】注册广播,实时监听网络连接与断开状态变化
- Android网络状态监听
- Android广播监听网络状态
- Android 实时监测(监听)网络连接状态变化
- 【Android】Android 监听网络状态+源代码
- 在android上监听网络状态的变更
- android 监听网络连接状态的改变
- Android开发监听判断网络连接状态的方法
- Android中监听网络状态
- android 使用广播监听网络状态
- 4.1.3.3 Android 网络状态监听的静态广播接受者和动态广播接受者Broadcast-Receiver
- 在android上监听网络状态的变更
- Android-监听网络状态
- Android实时监听网络状态
- Android 广播监听网络状态详解及实例代码
- android监听网络状态的广播
- Android开发:实时监听网络状态
- android 监听网络状态