/**
* 与网络相关的操作和判断工具类
*/
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;
}
}
判断是否连接网络,当前网络类型,Gps是否打开
最新推荐文章于 2021-05-29 09:09:10 发布