package org.andengine.util; import org.andengine.util.exception.AndEngineException; import org.andengine.util.system.SystemUtils; import android.annotation.TargetApi; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; /** * (c) 2013 Nicolas Gramlich * * @author Nicolas Gramlich * @since 19:33:01 - 21.05.2013 */ public final class ConnectivityUtils { // =========================================================== // Constants // =========================================================== // =========================================================== // Fields // =========================================================== // =========================================================== // Constructors // =========================================================== private ConnectivityUtils() { } // =========================================================== // Getter & Setter // =========================================================== // =========================================================== // Methods for/from SuperClass/Interfaces // =========================================================== // =========================================================== // Methods // =========================================================== public static ConnectivityManager getConnectivityManager(final Context pContext) { return (ConnectivityManager) pContext.getSystemService(Context.CONNECTIVITY_SERVICE); } /** * @param pContext * @param pNetworkType {@link ConnectivityManager#TYPE_WIFI}, etc... * @return */ public static NetworkInfo getNetworkInfo(final Context pContext, final int pNetworkType) { return ConnectivityUtils.getConnectivityManager(pContext).getNetworkInfo(pNetworkType); } /** * @param pContext * @param pNetworkType {@link ConnectivityManager#TYPE_WIFI}, etc... * @return */ public static boolean isNetworkAvailable(final Context pContext, final int pNetworkType) { return ConnectivityUtils.getNetworkInfo(pContext, pNetworkType).isAvailable(); } /** * @param pContext * @param pNetworkType {@link ConnectivityManager#TYPE_WIFI}, etc... * @return */ public static boolean isNetworkConnected(final Context pContext, final int pNetworkType) { return ConnectivityUtils.getNetworkInfo(pContext, pNetworkType).isConnected(); } /** * @param pContext * @param pNetworkType {@link ConnectivityManager#TYPE_WIFI}, etc... * @return */ public static boolean isNetworkConnectedOrConnecting(final Context pContext, final int pNetworkType) { return ConnectivityUtils.getNetworkInfo(pContext, pNetworkType).isConnectedOrConnecting(); } @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) public static boolean isEthernetAvailable(final Context pContext) throws ConnectivityUtilsException { if (SystemUtils.isAndroidVersionOrHigher(Build.VERSION_CODES.HONEYCOMB_MR2)) { return ConnectivityUtils.isNetworkAvailable(pContext, ConnectivityManager.TYPE_ETHERNET); } else { throw new ConnectivityUtilsException(); } } @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) public static boolean isEthernetAvailable(final Context pContext, final boolean pDefault) { if (SystemUtils.isAndroidVersionOrHigher(Build.VERSION_CODES.HONEYCOMB_MR2)) { return ConnectivityUtils.isNetworkAvailable(pContext, ConnectivityManager.TYPE_ETHERNET); } else { return pDefault; } } @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) public static boolean isEthernetConnected(final Context pContext) throws ConnectivityUtilsException { if (SystemUtils.isAndroidVersionOrHigher(Build.VERSION_CODES.HONEYCOMB_MR2)) { return ConnectivityUtils.isNetworkConnected(pContext, ConnectivityManager.TYPE_ETHERNET); } else { throw new ConnectivityUtilsException(); } } @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) public static boolean isEthernetConnected(final Context pContext, final boolean pDefault) { if (SystemUtils.isAndroidVersionOrHigher(Build.VERSION_CODES.HONEYCOMB_MR2)) { return ConnectivityUtils.isNetworkConnected(pContext, ConnectivityManager.TYPE_ETHERNET); } else { return pDefault; } } @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) public static boolean isEthernetConnectedOrConnecting(final Context pContext) throws ConnectivityUtilsException { if (SystemUtils.isAndroidVersionOrHigher(Build.VERSION_CODES.HONEYCOMB_MR2)) { return ConnectivityUtils.isNetworkConnectedOrConnecting(pContext, ConnectivityManager.TYPE_ETHERNET); } else { throw new ConnectivityUtilsException(); } } @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) public static boolean isEthernetConnectedOrConnecting(final Context pContext, final boolean pDefault) { if (SystemUtils.isAndroidVersionOrHigher(Build.VERSION_CODES.HONEYCOMB_MR2)) { return ConnectivityUtils.isNetworkConnectedOrConnecting(pContext, ConnectivityManager.TYPE_ETHERNET); } else { return pDefault; } } public static boolean isWifiAvailable(final Context pContext) throws ConnectivityUtilsException { return ConnectivityUtils.isNetworkAvailable(pContext, ConnectivityManager.TYPE_WIFI); } public static boolean isWifiConnected(final Context pContext) { return ConnectivityUtils.isNetworkConnected(pContext, ConnectivityManager.TYPE_WIFI); } public static boolean isWifiConnectedOrConnecting(final Context pContext) { return ConnectivityUtils.isNetworkConnectedOrConnecting(pContext, ConnectivityManager.TYPE_WIFI); } // =========================================================== // Inner and Anonymous Classes // =========================================================== public static class ConnectivityUtilsException extends AndEngineException { // =========================================================== // Constants // =========================================================== private static final long serialVersionUID = 4955967914807211384L; // =========================================================== // Constructors // =========================================================== public ConnectivityUtilsException() { } public ConnectivityUtilsException(final Throwable pThrowable) { super(pThrowable); } } }