平常编程中是否遇到过以下情况:
1.网络通畅——>网络中断
2.无网络连接——>网络连接
3.网络的切换——>wifi切换成4g,4g切换成wifi
我们需要对以上的几种情况作出相应的处理,或许提示,获取获取切换到4g时,开启小图省流量模式,以及进行socket的重新连接等,诸如此类的处理。
Demo下载:(待定)
效果图:
下面直接上程序片段
package com.tb.demo.net;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
/**
* Created by tangbin on 15/9/10.
*/
public class NetBroadcastReceiver extends BroadcastReceiver {
private ConnectivityManager connectivityManager;
private NetworkInfo info;
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
info = connectivityManager.getActiveNetworkInfo();
if (info != null && info.isAvailable()) {
String name = info.getTypeName();
Log.d(NetBroadcastReceiver.class.getSimpleName(), "终于来网了呢:网络类型是"
+ name);
// doSomething()
} else {
Log.d(NetBroadcastReceiver.class.getSimpleName(), "断网了,亲");
// doSomething()
}
}
}
}
<receiver android:name="com.tb.demo.net.NetBroadcastReceiver">
<span style="white-space:pre"> </span><intent-filter>
<span style="white-space:pre"> </span><action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
<span style="white-space:pre"> </span></intent-filter>
</receiver>