Android检测网络连接

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Handler; /**

  • Created by mzb on 13-12-16.
    */
    public class NetworkUtil { public static final int Message_Cancel = 0;
    public static final int Message_Succeed = 1; /**
    • 判断是否有网络连接
      *
    • @param context 上下文Context
    • @return false没有联网,true已经联网
      */
      public static boolean canNetworkUseful(Context context) { ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
      if (manager == null) {
      return false;
      } //获取当前活动的网络状态(如果同时开启3G和WIFI,则当前活动网络是WIFI),如果没有连接网络,将会返回null
      NetworkInfo networkinfo = manager.getActiveNetworkInfo();
      if (networkinfo == null || !networkinfo.isAvailable()) {
      return false;
      } return true;
      } /**
    • 如果没有联网,显示提示联网对话框;已经联网,返回false
      *
    • @param context context
    • @param handler 处理器,如果用户取消联网,则向处理器发送Message_Cancel
    • @return false没有联网,true已经联网
      */
      public static boolean showCheckNetworkDialog(final Context context, final Handler handler) {
      if (!canNetworkUseful(context)) {
      new AlertDialog.Builder(context).setMessage(“当前网络不可用,请检查你的网络设置。”).setPositiveButton(“去设置”, new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialogInterface, int i) {
      //在安卓3.0以上的版本中,wifi联网的设置被放置在了主设置页面中。在之前的版本中,wifi联网在wifi设置页面中。根据不同的版本进行不同的页面跳转
      if (android.os.Build.VERSION.SDK_INT > 10) {
      context.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
      } else {
      context.startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
      }
      }
      }).setNegativeButton(“取消”, new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialogInterface, int i) {
      handler.sendEmptyMessage(Message_Cancel);
      }
      }).show();
      return false;
      }
      return true;
      }
      }