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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!