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;
}
}