2013-02-16 7 views

उत्तर

14

आप इसका पता लगाने के लिए NetworkInformation class का उपयोग कर सकते हैं; यह नमूना कोड एक इवेंट हैंडलर जोड़ता है जिसे प्रत्येक बार कनेक्शन स्थिति में परिवर्तन कहा जाता है;

NetworkInformation.NetworkStatusChanged += 
    NetworkInformation_NetworkStatusChanged; // Listen to connectivity changes 

static void NetworkInformation_NetworkStatusChanged(object sender) 
{ 
    ConnectionProfile profile = 
     NetworkInformation.GetInternetConnectionProfile(); 

    if (profile.GetNetworkConnectivityLevel() >= 
       NetworkConnectivityLevel.InternetAccess) 
    { 
     // We have Internet, all is golden 
    } 
} 
बेशक

, अगर आप बस इसे पता लगाने के लिए एक बार के बजाय सूचना प्राप्त करना चाहते हैं जब यह परिवर्तन, तो आप सिर्फ जांच ऊपर से परिवर्तन घटना को सुन के बिना कर सकते हैं।

+0

सही, आप – gurehbgui

+0

धन्यवाद यह भी ध्यान रखें कि आप नेटवर्क राज्यों का पता लगाने में काफ़ी इस के साथ और अधिक उन्नत प्राप्त कर सकते हैं: http://msdn.microsoft .com/en-us/लाइब्रेरी/विंडोज़/ऐप/एचएच 700376 और यहां सूचीबद्ध अवरोधित इंटरनेट एक्सेस जो 'कुछ' पहुंच का स्तर दे सकता है: http://msdn.microsoft.com/en-us/library/windows/apps/windows .networking.connectivity.networkconnectivitylevel –

+1

प्रोफ़ाइल उपलब्ध नहीं हो सकती है अगर कोई कनेक्शन उपलब्ध नहीं है, तो इसे जांचना चाहिए ... –

-3

सिर्फ async कार्यों ने लिखा है कि ऐसा करने के लिए:

private void myPingCompletedCallback(object sender, PingCompletedEventArgs e) 
    { 
     if (e.Cancelled) 
      return; 

     if (e.Error != null) 
      return; 

     if (e.Reply.Status == IPStatus.Success) 
     { 
      //ok connected to internet, do something 
     } 
    } 

    private void checkInternet() 
    { 
     Ping myPing = new Ping(); 
     myPing.PingCompleted += new PingCompletedEventHandler(myPingCompletedCallback); 
     byte[] buffer = new byte[32]; 
     int timeout = 1000; 
     PingOptions options = new PingOptions(64, true); 
     try 
     { 
      myPing.SendAsync("google.com", timeout, buffer, options); 
     } 
     catch 
     { 
     } 
    } 
+1

सबसे खराब जवाब मैंने कभी भी देखा है समय दोस्त ... बिल्कुल प्रदर्शन हत्यारा ... –

+0

इसके अलावा कोड पिंग क्लास का उपयोग करता है, जो कि विंडोज स्टोर ऐप के लिए उपलब्ध नहीं है, जो सवाल है। – Mog0

1
using Windows.Networking.Connectivity;  

public static bool IsInternetConnected() 
{ 
    ConnectionProfile connections = NetworkInformation.GetInternetConnectionProfile(); 
    bool internet = (connections != null) && 
     (connections.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess); 
      return internet; 
} 
+1

अपने कोड में कुछ संदर्भ जोड़ने पर विचार करें ताकि यह बताने के लिए कि आपका उत्तर ओपी के प्रश्न का उत्तर क्यों देता है। – mdewitt

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

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