首页 > 上网技巧 > 电脑小技巧 > Android判断网络状态是Wifi还是4G网络

Android判断网络状态是Wifi还是4G网络

时间:2019-01-02 17:17 作者:QQ地带 我要评论

package com.chengxinet.bobo.utils;
 
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.telephony.TelephonyManager;
 
/**
 * Created by Administrator on 2016/1/7.
 */
public class NetworkUtils {
  public static boolean isNetworkAvailable(Context c) {
    Context context = c.getApplicationContext();
    // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 
    if (connectivityManager == null) {
      return false;
    } else {
      // 获取NetworkInfo对象
      NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();
 
      if (networkInfo != null && networkInfo.length > 0) {
        for (NetworkInfo aNetworkInfo : networkInfo) {
//          System.out.println(i + "===状态===" + networkInfo[i].getState());
//          System.out.println(i + "===类型===" + networkInfo[i].getTypeName());
          // 判断当前网络状态是否为连接状态
          if (aNetworkInfo.getState() == NetworkInfo.State.CONNECTED) {
            return true;
          }
        }
      }
    }
    return false;
  }
 
  /**
   * 判断WIFI是否打开
   * @param context
   * @return
   */
  public static boolean isWifiEnabled(Context context) {
    ConnectivityManager mgrConn = (ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE);
    TelephonyManager mgrTel = (TelephonyManager) context
        .getSystemService(Context.TELEPHONY_SERVICE);
    return ((mgrConn.getActiveNetworkInfo() != null && mgrConn
        .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel
        .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);
  }
 
  /**
   * 判断是否是3G网络
   * @param context
   * @return
   */
  public static boolean is3rd(Context context) {
    ConnectivityManager cm = (ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkINfo = cm.getActiveNetworkInfo();
    if (networkINfo != null
        && networkINfo.getType() == ConnectivityManager.TYPE_MOBILE) {
      return true;
    }
    return false;
  }
 
  /**
   * 判断是wifi还是3g网络
   * @param context
   * @return
   */
  public static boolean isWifi(Context context) {
    ConnectivityManager cm = (ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkINfo = cm.getActiveNetworkInfo();
    if (networkINfo != null
        && networkINfo.getType() == ConnectivityManager.TYPE_WIFI) {
      return true;
    }
    return false;
  }
}

标签: Android
顶一下
(0)
0%
踩一下
(0)
0%

Google提供的广告