2010-05-07 67 views
9

如何使用Android服務執行ping回撥?我需要打開一個網頁點擊按鈕,但在後臺,去平另一個網址的統計收集。Android服務 - Ping URL

代碼片段將是很大的幫助

感謝 克里斯

回答

16

我認爲,如果你只是想ping一個網址,你可以使用此代碼:如果你想

try { 
    URL url = new URL("http://"+params[0]); 

    HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); 
    urlc.setRequestProperty("User-Agent", "Android Application:"+Z.APP_VERSION); 
    urlc.setRequestProperty("Connection", "close"); 
    urlc.setConnectTimeout(1000 * 30); // mTimeout is in seconds 
    urlc.connect(); 

    if (urlc.getResponseCode() == 200) { 
     Main.Log("getResponseCode == 200"); 
     return new Boolean(true); 
    } 
} catch (MalformedURLException e1) { 
    e1.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

而且,要具有相當於ping的功能,可以在調用之前和之後放置一個System.currentTimeMillis(),並計算差異。

希望幫助

代碼片段在here

+0

發現這一直對我很好,除了它總是失敗的Android 4的設備。有任何想法嗎? – dee 2012-02-10 16:29:33

+9

您需要將呼叫從主線程移出。 Android 4在主線程上禁止網絡調用以防止ANR問題。 – 2012-02-13 22:47:20

+2

這將建立一個完整的3路握手TCP連接。所以這個時間就像是一個ping('ICMP-echo - > ICMP-reply') – 2015-03-04 19:51:29