Android 监控网络状态
2015-04-03 13:11
162 查看
使用ConnectivityManager监听网络状态变化
博客分类:Android 文章
connectivitymanager
Java代码
mIntenFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
mConnectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false)) {
Log.i(TAG, "netWork has lost");
}
NetworkInfo tmpInfo = (NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
Log.i(TAG, tmpInfo.toString() + " {isConnected = " + tmpInfo.isConnected() + "}");
}
};
mIntenFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); mConnectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false)) { Log.i(TAG, "netWork has lost"); } NetworkInfo tmpInfo = (NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO); Log.i(TAG, tmpInfo.toString() + " {isConnected = " + tmpInfo.isConnected() + "}"); } };
注册Receiver,监听网络变化:
Java代码
registerReceiver(mReceiver, mIntenFilter);
registerReceiver(mReceiver, mIntenFilter);
取消注册,不再监听网络变化:
Java代码
unregisterReceiver(mReceiver);
unregisterReceiver(mReceiver);
也可在AndroidManifest.xml中注册BroadcastReceiver
Xml代码
<receiver android:name=".ConnectionReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<receiver android:name=".ConnectionReceiver" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver>
程序第一次启动时会收到一个Broadcast
从 GPRS 到 WIFI,程序至少会收到3个Broadcast
第一个是连接到WIFI
第二个是断开GPRS
第三个是连接到WIFI
从WIFI到GPRS,程序至少会收到2个Broadcast
第一个是断开Wifi
第二个是连接到GPRS
http://blog.csdn.net/chenzheng_java/article/details/6387116/
android之ConnectivityManager简介,网络连接状态
上面判断网络类型的方法只是为了展示用法,其实完全可以通过networkInfo.getType()的返回值来判断。
如:
Context context = listActivity.getApplicationContext();//获取应用上下文
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);//获取系统的连接服务
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();//获取网络的连接情况
if(activeNetInfo.getType()==ConnectivityManager.TYPE_WIFI){
//判断WIFI网
}else if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) {
//判断3G网
}
相关文章推荐
- Android 监控网络状态
- Android 监控网络状态
- Android判断网络类型以及监控网络状态
- Android中判断网络连接是否可用及监控网络状态
- Android中判断网络连接是否可用及监控网络状态
- Android 监控网络状态
- Android中判断网络连接是否可用及监控网络状态
- Android中判断网络连接是否可用及监控网络状态
- android监控网络状态变化防止多次广播的一种解决办法
- Android中判断网络连接是否可用及监控网络状态
- Android 监控网络状态
- Android 监控网络状态
- Android中判断网络连接是否可用及监控网络状态
- Android中判断网络连接是否可用及监控网络状态
- Android 监控网络状态
- Android 监控网络状态
- Android 的网络编程(18)-监控四种网络状态
- Android-判断网络连接是否可用及监控网络状态
- Android中判断网络连接是否可用及监控网络状态
- Android 监控网络状态