代碼:
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, "網絡不可用");
}
}
}
};
}