Android判断当前的网络连接状态

1.直接上核心部分的代码,在使用的时候直接调用就可以:

// 检测网络是否连接
 private boolean isNetConnected() {
  ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  if (cm != null) {
   NetworkInfo[] infos = cm.getAllNetworkInfo();
   if (infos != null) {
    for (NetworkInfo ni : infos) {
     if (ni.isConnected() && ni.isAvailable()) {
      return true;
     }
    }
   }
  }
  return false;
 }

  //网络未连接时,调用设置方法
 private void setNetwork() {
  // Toast.makeText(this, "wifi is closed!", Toast.LENGTH_SHORT).show();

  AlertDialog.Builder builder = new AlertDialog.Builder(this);
  builder.setIcon(R.drawable.ic_launcher);
  builder.setTitle("网络提示信息");
  builder.setMessage("网络不可用,如果继续,请先设置网络!");
  builder.setCancelable(false);
  builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    Intent intent = null;
    /**
     * 判断手机系统的版本!如果API大于10 就是3.0+ 因为3.0以上的版本的设置和3.0以下的设置不一样,调用的方法不同
     */
    if (android.os.Build.VERSION.SDK_INT > 10) {
     // intent = new
     // Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
     intent = new Intent(
       android.provider.Settings.ACTION_SETTINGS);
    } else {
     intent = new Intent();
     ComponentName component = new ComponentName(
       "com.android.settings",
       "com.android.settings.WirelessSettings");
     intent.setComponent(component);
     intent.setAction("android.intent.action.VIEW");
    }
    // startActivity(intent);
    startActivityForResult(intent, 0);
   }
  });

  builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    WelcomeActivity.this.finish();
   }
  });
  builder.create();
  builder.show();
 }

 2.记得加上相应的权限

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

你可能感兴趣的:(Android判断当前的网络连接状态)