android監聽當前的網絡
之前我聽騰訊一個同事說,用android原本的監聽網絡方式,是不能保證的,原因是,現在的WiFi都需要通過瀏覽器驗證
所以采用ping ip才能保證網絡是連通的。
public class NetUtils {
private final static String TAG = "NetUtils";
/**
* 判斷當前網絡是否打開
*
* @param context
* @return
*/
public static boolean isNetOpen(Context context) {
boolean bisConnFlag = false;
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo != null) {
bisConnFlag = connectivityManager.getActiveNetworkInfo().isAvailable();
}
return bisConnFlag;
}
/**
* 判斷是否為WiFi
*
* @param context
* @return
*/
public static boolean isWifi(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetworkInfo != null && activeNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
}
return false;
}
public static final boolean ping(String ip) {
String result = null;
try {
String testIP = "baidu.com";
if (!TextUtils.isEmpty(ip)) {
testIP = ip;
}
Process process = Runtime.getRuntime().exec("ping -c 3 -w 100 " + testIP);//ping 3次
//讀取ping的內容
InputStream inputStream = process.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuffer stringBuffer = new StringBuffer();
String content = "";
while ((content = bufferedReader.readLine()) != null) {
stringBuffer.append(content);
}
Log.e(TAG, "result content:" + stringBuffer.toString());
//ping的狀態
int status = process.waitFor();
if (status == 0) {
result = "successful";
return true;
} else {
result = "failed cannot reach the IP address";
}
} catch (IOException e) {
result = "failed IOException";
} catch (InterruptedException e) {
result = "failed InterruptedException";
} finally {
Log.e(TAG, result);
}
return false;
}
}
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!