代码:
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.view.View;
public class MainActivity extends Activity{
private View netLayout;
private ConnectivityManager cm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initViews();
checkNet();
}
private void checkNet() {
cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
if (info != null && info.isAvailable() && info.isConnected()) {
//网络可用
netLayout.setVisibility(View.GONE);
MyLog.i(TAG, "网络已连接");
} else {
//网络不可用
netLayout.setVisibility(View.VISIBLE);
MyLog.i(TAG, "网络不可用");
}
}
private void registerBroadcast() {
//注册监听网络状态改变的广播
IntentFilter netFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
netFilter.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(netReceive, netFilter);
}
private BroadcastReceiver netReceive = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
MyLog.i(TAG, "netReceive");
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
//获得系统的连接管理器,网络管理器
//获得激活的网络信息
NetworkInfo info = cm.getActiveNetworkInfo();
//当前网络是否有效
// boolean available = info.isAvailable();
//当前网络是否已连接
// boolean connected = info.isConnected();
//当前网络的类型
// String netType = info.getTypeName();
if (info != null && info.isAvailable() && info.isConnected()) {
//网络是可用的
netLayout.setVisibility(View.GONE);
} else {
//当前网络不可用
netLayout.setVisibility(View.VISIBLE);
MyLog.i(TAG, "网络不可用");
}
}
}
};
}