2012-04-17 17 views
7

मेरा ऐप पहले इंटरनेट से डेटा लोड करता है (मैं webservice का उपयोग कर रहा हूं) मैं ऐप स्टार्टअप पर इंटरनेट एक्सेस देखना चाहता हूं।एंड्रॉइड में ऐप स्टार्टअप में इंटरनेट उपलब्ध है या नहीं, यह जांचने के लिए कैसे करें?

  1. मैं यह जांचना चाहूंगा कि इंटरनेट के किसी भी प्रकार या तो 3 जी या वाईफ़ाई या जीपीआरएस या कोई अन्य उपलब्ध है या नहीं।
  2. यदि उपलब्ध नहीं है, तो "जैसे उपयोगकर्ता को संदेश दें आपको इंटरनेट एक्सेस" की आवश्यकता है और ऐप से बाहर निकलें। (वर्तमान में मुझे इंटरनेट एक्सेस नहीं होने पर मेरे ऐप में बल बंद त्रुटि मिल रही है)
  3. यदि उपलब्ध हो, तो सामान्य रूप से मेरा ऐप शुरू करें।
  4. इसके अलावा, मेरा ऐप प्रत्येक चरण या ऑपरेशन से पहले विभिन्न चरणों में वेब सेवा से डेटा प्राप्त करता है, मैं पहले इंटरनेट एक्सेस की जांच करना चाहता हूं।

मैं यह कैसे कर सकता हूं?

+2

देखें उदा पिछले उत्तरों के लिए http://stackoverflow.com/questions/1560788/how-to-check-internet-access-on-android-inetaddress-never-timeouts। – mlc

उत्तर

7

तुम मेरे विधि का उपयोग कर सकते हैं:

public static boolean isNetworkAvailable(Context context) 
{ 
    ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 

    if (connectivity != null) 
    { 
     NetworkInfo[] info = connectivity.getAllNetworkInfo(); 

     if (info != null) 
     { 
      for (int i = 0; i < info.length; i++) 
      { 
       Log.i("Class", info[i].getState().toString()); 
       if (info[i].getState() == NetworkInfo.State.CONNECTED) 
       { 
        return true; 
       } 
      } 
     } 
    } 
    return false; 
} 
+0

Thanx! काम करता है !!! – captaindroid

+0

मुझे खुशी है कि यह आपकी मदद करता है .. :) – dreamcoder

+0

यदि मेरे पास वाईफ़ाई इंटरनेट कनेक्शन के बिना कनेक्ट है, तो कोड सही हो रहा है। आपके पास इसके लिए कोई विकल्प है? –

3

आप यह सब ConnectivityManager का उपयोग करके कर सकते हैं। सभी आवश्यक जानकारी यहाँ उपलब्ध

http://developer.android.com/reference/android/net/ConnectivityManager.html

है

आप शायद अपने प्रारंभिक गतिविधि के onStart() विधि में कुछ इस तरह रहना चाहते हैं (पर निर्भर करता है, जहां अपने कोड में कनेक्शन निकाल दिया जाता है और डेटा डाउनलोड किया जाता है)

ConnectivityManager cm = (ConnectivityManager) Context.getSystemService(Context.CONNECTIVITY_SERVICE); 

if (cm.getAllNetworkInfo().isConnected()) { 
//proceed with loading 
} else { 
//showErrorDialog 
} 

मैं परीक्षण नहीं किया ते कोड इसलिए काट और पेस्ट करके शायद एक बुरा विचार है, लेकिन यह आप एक अच्छा प्रारंभिक बिंदु देना चाहिए। यदि आप दस्तावेज़ों की जांच करते हैं तो बहुत सारी जानकारी है।

इसके अलावा आपके कोड को बदलकर कनेक्टिविटी की कमी को संभालने का विचार हो सकता है, इसलिए कोई कनेक्शन नहीं होने पर यह केवल क्रैश नहीं होता है, प्री हैप्स डिफ़ॉल्ट लोडिंग स्क्रीन दिखाते हैं? कनेक्शन उपलब्ध होने पर भी आपका ऐप डेटा प्राप्त करने में असफल हो सकता है, इसलिए आप उस परिदृश्य को भी संभालना चाहेंगे।

1
NetworkInfo i = conMgr.getActiveNetworkInfo(); 
    if (i == null) 
    return false; 
    if (!i.isConnected()) 
    return false; 
    if (!i.isAvailable()) 
    return false; 
    return true; 
संबंधित मुद्दे

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