Runtime runtime = Runtime.getRuntime();
try {
Process p = runtime.exec("ping -c 2 www.baidu.com");
int ret = p.waitFor();
Thread.sleep(1000);
System.out.println("查询到的网络访问码是::" + ret);
if (ret!=0){
//网络不通,停止加载
}else {
//网络通畅,加载网络
}
ret返回码分为0.1.2
1、连通的移动数据网络下: 0
2、在需要网页认证的wifi下:1
3、在wifi打开但没有网络连接,数据也不用的状态下:2
4、在不可用的wifi下:2
5、在可用的wifi下:0
//*****360wifi可能返回码是1
//***************其中的原理就是使用ping
------------------------第二种办法:----------------------
/**
* 检测当的网络(WLAN、3G/2G)状态
* @param context Context
* @return true 表示网络可用
*/
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null && info.isConnected())
{
// 当前网络是连接的
if (info.getState() == NetworkInfo.State.CONNECTED)
{
// 当前所连接的网络可用
return true;
}
}
}
return false;
}