package com.rehome.bhdxj.utils;


import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

/**
 * Create By HuangWenFei
 * 创建日期：2023-05-18 16:06
 * 描述：
 */
public class NetworkUtil {

    private NetworkUtil() {}

    /**
     * 当前是否有网络状态
     *
     * @param context  上下文
     * @param needWifi 是否需要wifi网络
     */
    public static boolean hasNetWorkStatus(Context context, boolean needWifi) {
        NetworkInfo info = getActiveNetwork(context);
        if (info == null) {
            return false;
        }
        if (!needWifi) {
            return info.isAvailable();
        } else if (info.getType() == ConnectivityManager.TYPE_WIFI) {
            return info.isAvailable();
        }
        return false;
    }

    /**
     * 当前网络是否连接wifi状态
     *
     * @param context  上下文
     */
    public static boolean isWifiNetWorkConnect(Context context) {
        NetworkInfo info = getActiveNetwork(context);
        if (info == null) {
            return false;
        }
        if (info.getType() == ConnectivityManager.TYPE_WIFI) {
            return info.isAvailable();
        }
        return false;
    }

    /**
     * 当前网络是否连接的运营商网络
     *
     * @param context  上下文
     */
    public static boolean isISPNetWorkConnect(Context context) {
        NetworkInfo info = getActiveNetwork(context);
        if (info == null) {
            return false;
        }
        if (info.getType() == ConnectivityManager.TYPE_WIFI) {

        }else{
            return true;
        }
        return false;
    }

    /**
     * 当前是否有网络连接
     * @param context  上下文
     */
    public static boolean canNetWorkConnect(Context context) {
        NetworkInfo info = getActiveNetwork(context);
        if (info == null) {
            return false;
        }
        return true;
    }

    /**
     * 获取活动网络连接信息
     *
     * @param context 上下文
     * @return NetworkInfo
     */
    public static NetworkInfo getActiveNetwork(Context context) {
        ConnectivityManager mConnMgr = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (mConnMgr == null) {
            return null;
        }
        // 获取活动网络连接信息
        return mConnMgr.getActiveNetworkInfo();
    }
}
