ConnectivityManager判断网络状态及wifi,数据流量

ConnectivityManager判断网络状态及wifi,数据流量

  现在绝大多数APP都是在线使用,而我们在编写android程序时便要判断网络状态,及在当前网络状态下用户是否愿意打开此APP,例如在2G/3G/4G网络下用户是否愿意打开在有视频或图片较多的情况下。

  ConnectivityManager 主要管理网络连接的相关的类,主要用于

  1 监视网络连接状态 包括(Wi-Fi, GPRS, UMTS, etc) 

  2 当网络状态改变时发送广播通知
  3 当网络连接失败尝试连接其他网络
  4提供API,允许应用程序获取可用的网络状态


使用代码:

   /**
  * @category 判断是否有网络连接
  * @param context
  * @return
  */
 public static boolean isNetworkConnected(Context context) {
  if (context != null) {

//获取ConnectivityManager
   ConnectivityManager mConnectivityManager = (ConnectivityManager) context
     .getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo mNetworkInfo = mConnectivityManager
     .getActiveNetworkInfo();
   if (mNetworkInfo != null) {
    return mNetworkInfo.isAvailable();
   }
  }
  return false;
 }

 /**
  * @category 判断WIFI网络是否可用
  * @param context
  * @return
  */
 public static boolean isWifiConnected(Context context) {
  if (context != null) {
   ConnectivityManager mConnectivityManager = (ConnectivityManager) context
     .getSystemService(Context.CONNECTIVITY_SERVICE);

//设置网络类型
   NetworkInfo mWiFiNetworkInfo = mConnectivityManager
     .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
   if (mWiFiNetworkInfo != null) {
    return mWiFiNetworkInfo.isAvailable();
   }
  }
  return false;
 }

 /**
  * @category 判断MOBILE网络是否可用
  * @param context
  * @return
  */
 public static boolean isMobileConnected(Context context) {
  if (context != null) {
   ConnectivityManager mConnectivityManager = (ConnectivityManager) context
     .getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo mMobileNetworkInfo = mConnectivityManager
     .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
   if (mMobileNetworkInfo != null) {
    return mMobileNetworkInfo.isAvailable();
   }
  }
  return false;
 }

 /**
  * @category 获取当前网络连接的类型信息
  * @param context
  * @return
  */
 public static int getConnectedType(Context context) {
  if (context != null) {
   ConnectivityManager mConnectivityManager = (ConnectivityManager) context
     .getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo mNetworkInfo = mConnectivityManager
     .getActiveNetworkInfo();
   if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {
    return mNetworkInfo.getType();
   }
  }
  return -1;
 }



你可能感兴趣的:(android)