package cn.koolcloud.ipos.appstore.utils; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.NetworkInfo.State; /** * <p>Title: NetUtil.java</p> * <p>Description: Use for network checking</p> * <p>Copyright: Copyright (c) 2013</p> * <p>Company: All In Pay</p> * @author Teddy * @date 2013-11-4 * @version */ public class NetUtil { public static final String WIFI = "wifi"; public static final String MOBILE = "wifi"; public static final String ALL = "all"; public static int getActiveType(Context ctx) { ConnectivityManager conMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); if (conMan == null) return -1; NetworkInfo info = conMan.getActiveNetworkInfo(); if (info == null) return -1; return info.getType(); } /** * @Title: isWifiActive * @Description: TODO * @param @param ctx * @param @return * @return boolean * @throws */ public static boolean isWifiActive(Context ctx) { ConnectivityManager conMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); if (conMan == null) return false; NetworkInfo info = conMan.getActiveNetworkInfo(); if (info == null) return false; return info.getType() == ConnectivityManager.TYPE_WIFI; } public static boolean isMobileActive(Context ctx) { ConnectivityManager conMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); if (conMan == null) return false; NetworkInfo info = conMan.getActiveNetworkInfo(); if (info == null) return false; return info.getType() == ConnectivityManager.TYPE_MOBILE; } public static boolean isCurrentNetworkAllowed(Context ctx, String allow) { if ("mobile".equalsIgnoreCase(allow)) return isMobileActive(ctx); if ("wifi".equalsIgnoreCase(allow)) return isWifiActive(ctx); if ("all".equalsIgnoreCase(allow)) return true; return false; } /** * @Title: isWifiConnected * @Description: TODO check if wifi is connected * @param @param ctx * @param @return * @return boolean * @throws */ public static boolean isWifiConnected(Context ctx) { ConnectivityManager conMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); if (conMan == null) return false; NetworkInfo info = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (info == null) return false; State wifiState = info.getState(); return (wifiState == State.CONNECTED); } /** * @Title: isMobileConnected * @Description: TODO check GPRS network * @param @param ctx * @param @return * @return boolean * @throws */ public static boolean isMobileConnected(Context ctx) { ConnectivityManager conMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); if (conMan == null) return false; NetworkInfo info = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (info == null) return false; State wifiState = info.getState(); return (wifiState == State.CONNECTED); } public static boolean isMobileGPRS(Context ctx) { ConnectivityManager conMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); if (conMan == null) return false; NetworkInfo info = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (info == null) return false; return (info.getSubtypeName().equalsIgnoreCase("GPRS") || info.getSubtypeName().equalsIgnoreCase("EDGE")); } public static boolean isAvailable(Context ctx) { return (isWifiConnected(ctx) || isMobileConnected(ctx) || isEthernetDataEnable(ctx)); } public static NetworkInfo getWifiInfo(Context ctx) { ConnectivityManager conMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); if (conMan == null) return null; return conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI); } public static NetworkInfo getMobileInfo(Context ctx) { ConnectivityManager conMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); if (conMan == null) return null; return conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); } public static boolean startMobileFeature(Context ctx, String feature) { ConnectivityManager conMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); if (conMan == null) return false; int ret = conMan.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, feature); return (ret != -1); } public static boolean stopMobileFeature(Context ctx, String feature) { ConnectivityManager conMan = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); if (conMan == null) return false; int ret = conMan.stopUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, feature); return (ret != -1); } public static boolean isEthernetDataEnable(Context paramContext){ return ((ConnectivityManager)paramContext.getSystemService("connectivity")) .getNetworkInfo(ConnectivityManager.TYPE_ETHERNET).isConnectedOrConnecting(); } public static boolean isNetworkAvailable(Context paramContext) { ConnectivityManager connectivity = (ConnectivityManager)paramContext.getSystemService("connectivity"); if (connectivity != null) { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) { for (int i = 0; i < info.length; i++) { if (info[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } } } return false; } }