判断是否连接网络,当前网络类型,Gps是否打开

来源:互联网 发布:嫉妒的化身知乎 编辑:程序博客网 时间:2024/05/21 05:22
/** * 与网络相关的操作和判断工具类 */public class NeobearNetUtils {    public NeobearNetUtils() {    }    /**     * 判断是否有网络连接可用     *     * @param context     * @return 有网络连接true,无网络连接false     */    public static boolean isNetworkConnected(Context context) {        if (null != context) {            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo info = cm.getActiveNetworkInfo();            if (null != info) {                return info.isAvailable();            }        }        return false;    }    /**     * 判断WIFI网络是否可用     *     * @param context     * @return WIFI可用true,WIFI不可用false     */    public static boolean isWifiConnected(Context context) {        if (null != context) {            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo info = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);            if (null != info) {                return info.isAvailable();            }        }        return false;    }    /**     * 判断MOBILE网络是否可用     *     * @param context     * @return MOBILE可用true,MOBILE不可用false     */    public static boolean isMobileConnected(Context context) {        if (null != context) {            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo info = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);            if (null != info) {                return info.isAvailable();            }        }        return false;    }    /**     * 获取当前网络连接的类型信息mobile还是wifi     *     * @param context     * @return -1表示无,0表示mobile,1表示wifi     */    public static int getConnectedType(Context context) {        if (null != context) {            ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo info = cm.getActiveNetworkInfo();            if (null != info && info.isAvailable()) {                return info.getType();            }        }        return -1;    }    /**     * 判断GPS是否打开     *     * @param context     * @return 打开true,关闭false     */    public static boolean isGpsEnabled(Context context) {        LocationManager lm = ((LocationManager) context.getSystemService(Context.LOCATION_SERVICE));        List<String> accessibleProviders = lm.getProviders(true);        return null != accessibleProviders && accessibleProviders.size() > 0;    }    /**     * ping某个ip或域名是否联通,主要是测试网络连接是否通畅     *     * @param ip ip或域名     * @return 联通true,断开false     */    public static boolean ping(String ip) {        boolean isConnected = false;        try {            Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);            if (p.waitFor() == 0) {                isConnected = true;            }        } catch (IOException e) {            e.printStackTrace();        } catch (InterruptedException e) {            e.printStackTrace();        } finally {        }        return isConnected;    }}
0 0
原创粉丝点击