मुझे लगता है कि अगर आप सिर्फ एक यूआरएल पिंग करने, तो आप इस कोड का उपयोग कर सकते हैं: अगर आप चाहते हैं
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();
}
और, एक पिंग के बराबर होने के लिए, आप कॉल से पहले और बाद में System.currentTimeMillis() डाल सकते हैं, और अंतर की गणना कर सकते हैं।
उम्मीद में कि मदद करता है
कोड स्निपेट here
में पाया यह एंड्रॉयड 4 उपकरणों जहां यह हमेशा विफल रहता है के अलावा मेरे लिए ठीक काम कर रहा है। कोई विचार? – dee
आपको अपने मुख्य धागे को कॉल को स्थानांतरित करने की आवश्यकता है। एंड्रॉइड 4 एएनआर मुद्दों को रोकने के लिए मुख्य धागे पर कोई नेटवर्क कॉल लागू नहीं करता है। –
यह एक पूर्ण 3-तरफा हैंडशेक के साथ एक टीसीपी कनेक्शन स्थापित करेगा। तो समय एक पिंग की तरह कुछ नहीं है ('आईसीएमपी-इको -> आईसीएमपी-उत्तर') –