1. 程式人生 > >Android 判斷是否能真正上網(避免連入wifi無網的狀態)

Android 判斷是否能真正上網(避免連入wifi無網的狀態)

/** * 檢測網路是否連線 * * @return */ private boolean isNetworkAvailable() { // 得到網路連線資訊 ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); // 去進行判斷網路是否連線 if (manager.getActiveNetworkInfo() != null) { return manager.getActiveNetworkInfo().isAvailable();
} return false;

}

public static final boolean ping() {

    String result = null;
    try {
        String ip = "www.baidu.com";// ping 的地址,可以換成任何一種可靠的外網
Process p = Runtime.getRuntime().exec("ping -c 3 -w 100 " + ip);// ping網址3次
        // 讀取ping的內容,可以不加
InputStream input = p.getInputStream();
        BufferedReader in = new 
BufferedReader(new InputStreamReader(input)); StringBuffer stringBuffer = new StringBuffer(); String content = ""; while ((content = in.readLine()) != null) { stringBuffer.append(content); } Log.d("------ping-----", "result content : " + stringBuffer.toString()); // ping的狀態
int status = p.waitFor(); if (status == 0) { result = "success"; return true; } else { result = "failed"; } } catch (IOException e) { result = "IOException"; } catch (InterruptedException e) { result = "InterruptedException"; } finally { Log.d("----result---", "result = " + result); } return false; }