Re: [問題]如何判斷 網路 連線能力

作者: chiel (All 噴 將!!)   2014-05-27 00:54:07
※ 引述《slemonade (淳)》之銘言:
: ※ 引述《slemonade (淳)》之銘言:
: : 請問各位前輩,當手機開啟wifi or 3g,可以用ConnectivityManager獲得連線資料;但是當wifi是內網且沒有上網的能力(無法看網頁),獲得的資訊一樣是有連線的;有沒有辦法可以知道wifi是不是確實可以上網的呢? 謝謝
: Process p= Runtime.getRumtime.exec(ping -c 1 www.google.com); p.waitfor(); 用ping如果ping不到的話,會卡住呢,請問有什麼解決方式或其他方法嗎?
Try it.
public static boolean ping(String url, int timeout) {
// Otherwise an exception may be thrown on invalid SSL certificates.
url = url.replaceFirst("https", "http");
HttpURLConnection connection = null;
try {
connection = (HttpURLConnection) new URL(url).openConnection();
connection.setConnectTimeout(timeout);
connection.setReadTimeout(timeout);
connection.setRequestMethod("HEAD");
int responseCode = connection.getResponseCode();
return (200 <= responseCode && responseCode <= 399);
} catch (IOException exception) {
return false;
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
至於推文提到的 walled garden 問題
http://goo.gl/dfWq7A 這個link可以看看
作者: johnpage (johnpage)   2014-05-27 04:48:00
ping 沒使用timeout
作者: slemonade (淳)   2014-05-28 00:07:00
感謝大大們的方法,雖然看不太懂,不過還是試試^^

Links booklink

Contact Us: admin [ a t ] ucptt.com