package com.jacky.compatible.launcher.utils; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.NetworkInfo.State; import android.net.wifi.WifiManager; import java.lang.reflect.Method; /** * @author jacky * @version 1.0 * @since 2016.4.3 */ public final class NetWorkUtil { public static final int STATE_DISCONNECT = 0; public static final int STATE_WIFI = 1; public static final int STATE_MOBILE = 2; // wifi 热点 public static final int WIFI_AP_STATE_DISABLING = 10; public static final int WIFI_AP_STATE_DISABLED = 11; public static final int WIFI_AP_STATE_ENABLING = 12; public static final int WIFI_AP_STATE_ENABLED = 13; public static final int WIFI_AP_STATE_FAILED = 14; private NetWorkUtil() throws InstantiationException { throw new InstantiationException("This class is not created for instantiation"); } private static int getWifiApState(Context mContext) { WifiManager wifiManager = (WifiManager) mContext .getSystemService(Context.WIFI_SERVICE); try { Method method = wifiManager.getClass().getMethod("getWifiApState"); return (Integer) method.invoke(wifiManager); } catch (Exception e) { return WIFI_AP_STATE_FAILED; } } private static boolean isApEnabled(Context mContext) { int state = getWifiApState(mContext); return WIFI_AP_STATE_ENABLING == state || WIFI_AP_STATE_ENABLED == state; } private static boolean isWifiApEnabled(Context context) { WifiManager wifiManager = (WifiManager) context .getSystemService(Context.WIFI_SERVICE); try { Method method = wifiManager.getClass().getMethod("isWifiApEnabled"); method.setAccessible(true); return (Boolean) method.invoke(wifiManager); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return false; } public static boolean isNetWorkConnected(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[] nis = cm.getAllNetworkInfo(); if (nis != null) { for (NetworkInfo ni : nis) { if (ni != null) { if (ni.isConnected()) { return true; } } } } return false; } public static boolean isWifiConnected(Context context) { WifiManager wifiMgr = (WifiManager) context .getSystemService(Context.WIFI_SERVICE); return wifiMgr.isWifiEnabled(); } public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = cm.getActiveNetworkInfo(); if (networkInfo != null) { return networkInfo.isAvailable(); } return false; } public static int getNetworkState(Context context) { ConnectivityManager connManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); // Wifi State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI) .getState(); if (state == State.CONNECTED || state == State.CONNECTING) { return STATE_WIFI; } // 3G state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) .getState(); if (state == State.CONNECTED || state == State.CONNECTING) { return STATE_MOBILE; } return STATE_DISCONNECT; } }