封装判断网络状态

/**
 * 获取当前网络连接信息
 *
 * @param paramContext
 * @return
 */
public static NetworkInfo getActiveNetworkInfo(Context paramContext) {
    return ((ConnectivityManager) paramContext.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
}

/**
 * 获取当前连接网络类型
 *
 * @param paramContext
 * @return
 */
public static int getNetworkType(Context paramContext) {
    ConnectivityManager localConnectivityManager = (ConnectivityManager) paramContext.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (localConnectivityManager != null) {
        NetworkInfo localNetworkInfo = localConnectivityManager.getActiveNetworkInfo();
        if (localNetworkInfo != null)
            return localNetworkInfo.getType();
    }
    return -1;
}

/**
 * 检测是否使用3G/4G
 *
 * @param paramContext
 * @return
 */
public static boolean is3Gor4G(Context paramContext) {
    try {
        int i = ((TelephonyManager) paramContext.getSystemService("phone")).getNetworkType();
        if ((i == 8) || (i == 13) || (i == 3) || (i == 15) || (i == 10) || (i == 14) || (i == 6) || (i == 9) || (i == 12))
            return true;
    } catch (Exception localException) {
    }
    return false;
}

/**
 * 检测网络类型是否为移动数据连接
 *
 * @param paramNetworkInfo
 * @return
 */
public static boolean isMobileNetworkInfo(NetworkInfo paramNetworkInfo) {
    return (paramNetworkInfo.getType() == 0) || (50 == paramNetworkInfo.getType());
}

/**
 * 检测是否支持网络
 *
 * @param paramContext
 * @return
 */
public static boolean isNetSupprot(Context paramContext) {
    ConnectivityManager localConnectivityManager = (ConnectivityManager) paramContext.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (localConnectivityManager == null) {
        return false;
    }
    try {
        NetworkInfo[] arrayOfNetworkInfo = localConnectivityManager.getAllNetworkInfo();
        if (arrayOfNetworkInfo != null) {
            for (int i = 0; i < arrayOfNetworkInfo.length; i++) {
                NetworkInfo.State localState1 = arrayOfNetworkInfo[i].getState();
                NetworkInfo.State localState2 = NetworkInfo.State.CONNECTED;
                if (localState1 == localState2)
                    return true;
            }
        }
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
    return false;
}

/**
 * 检测是否使用移动数据
 *
 * @param paramContext
 * @return
 */
public static boolean isNetworkAvailable(Context paramContext) {
    NetworkInfo localNetworkInfo = ((ConnectivityManager) paramContext.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    return (localNetworkInfo != null) && (localNetworkInfo.isAvailable());
}

/**
 * 检测是否开启wifi
 *
 * @param paramContext
 * @return
 */
@SuppressLint("DefaultLocale")
public static boolean isWifiEnabled(Context paramContext) {
    try {
        NetworkInfo localNetworkInfo = ((ConnectivityManager) paramContext.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
        return localNetworkInfo.getTypeName().toLowerCase().equals("wifi");
    } catch (Exception e) {
        // TODO: handle exception
    }
    return false;
}

/**
 * 检测是否通过wifi连接
 *
 * @param paramContext
 * @return
 */
public static boolean isWifiConnected(Context paramContext) {
    NetworkInfo localNetworkInfo = ((ConnectivityManager) paramContext.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    return (localNetworkInfo != null) && (localNetworkInfo.getType() == 1);
}

/**
 * 检查是否连接网络
 *
 * @param context
 * @return
 */
public static boolean isConnected(Context context) {
    ConnectivityManager connectMgr = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
    NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    if (mobNetInfo != null && mobNetInfo.isConnected()) {
        return true;
    }
    if (wifiNetInfo != null && wifiNetInfo.isConnected()) {
        return true;
    }
    return false;
}


public static String getLocalIpAddress(Context context) {
    String ip = getWIFILocalIpAddress(context);
    if (ip != null) {
        return ip;
    }

    try {
        for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
            NetworkInterface intf = en.nextElement();
            for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
                InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
    } catch (SocketException ex) {
       // Logger.e("WifiPreference IpAddress", ex.toString());
    }
    return null;
}

public static String getWIFILocalIpAddress(Context context) {
    WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    WifiInfo wifiInfo = wifiManager.getConnectionInfo();
    int ipAddress = wifiInfo.getIpAddress();
    if (ipAddress == 0) return null;
    return ((ipAddress & 0xff) + "." + (ipAddress >> 8 & 0xff) + "."
            + (ipAddress >> 16 & 0xff) + "." + (ipAddress >> 24 & 0xff));
}

猜你喜欢

转载自blog.csdn.net/zhao_15121/article/details/82807170
今日推荐