2010-05-07 14 views
9

मैं पिंग कॉलबैक करने के लिए एंड्रॉइड सर्विस का उपयोग कैसे कर सकता हूं? मुझे बटन क्लिक पर एक वेबपृष्ठ खोलने की ज़रूरत है, लेकिन पृष्ठभूमि में, आंकड़े संग्रह के लिए एक और यूआरएल पिंग करें।एंड्रॉइड सर्विस - पिंग यूआरएल

कोड के टुकड़े बहुत उपयोगी होगा

धन्यवाद क्रिस

उत्तर

16

मुझे लगता है कि अगर आप सिर्फ एक यूआरएल पिंग करने, तो आप इस कोड का उपयोग कर सकते हैं: अगर आप चाहते हैं

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

+0

में पाया यह एंड्रॉयड 4 उपकरणों जहां यह हमेशा विफल रहता है के अलावा मेरे लिए ठीक काम कर रहा है। कोई विचार? – dee

+9

आपको अपने मुख्य धागे को कॉल को स्थानांतरित करने की आवश्यकता है। एंड्रॉइड 4 एएनआर मुद्दों को रोकने के लिए मुख्य धागे पर कोई नेटवर्क कॉल लागू नहीं करता है। –

+2

यह एक पूर्ण 3-तरफा हैंडशेक के साथ एक टीसीपी कनेक्शन स्थापित करेगा। तो समय एक पिंग की तरह कुछ नहीं है ('आईसीएमपी-इको -> आईसीएमपी-उत्तर') –

संबंधित मुद्दे