2016-10-01 2 views
-2

내 응용 프로그램에서 인터넷 연결 및 내 사이트 액세스를 확인합니다. 나는 다른 반에서 결과를 얻을 수 없다. localSettings.Values를 통한 솔루션이 있지만 원하는 것은 아닙니다. 도와주세요. 고마워요다른 등급의 인터넷 수표 결과를 얻는 방법?

public class NetworkUtils{  

    public enum ConnType 
       { 
        CONN_MOBILE, 
        CONN_WIFI, 
        CONN_WAN, 
        CONN_NO, 
        CONN_MY 
       } 

      public ConnType GetConnectionGeneration() 
       { 
        string connectionProfileInfo = string.Empty; 
        try 
        { 
         ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile(); 

         if (InternetConnectionProfile == null) 
         { 
          NotifyUser("Not connected to Internet\n"); 
          return (ConnType.CONN_NO); 
         } 
         else 
         { 
          if (InternetConnectionProfile.IsWlanConnectionProfile) 
          { 
           HttpClient httpClient = new HttpClient(); 
           httpClient.Timeout = new TimeSpan(0, 0, 0, 0, 300); 
           try 
           { 
            httpClient.GetAsync(new Uri("http://www.myexample.com")).Wait(); 
            NotifyUser("MY SITE connected\n"); 
            return (ConnType.CONN_MY); 
           } 
           catch (Exception ex) 
           { 
            NotifyUser("Unexpected exception occurred: " + ex.ToString()); 
           } 
           return (ConnType.CONN_WIFI); 
          } 
          else if (InternetConnectionProfile.IsWwanConnectionProfile) 
          { 
           WwanDataClass connectionClass = InternetConnectionProfile.WwanConnectionProfileDetails.GetCurrentDataClass(); 
           switch (connectionClass) 
           { 
            //2G-equivalent 
            case WwanDataClass.Edge: 
            case WwanDataClass.Gprs: 
            //3G-equivalent 
            case WwanDataClass.Cdma1xEvdo: 
            case WwanDataClass.Cdma1xEvdoRevA: 
            case WwanDataClass.Cdma1xEvdoRevB: 
            case WwanDataClass.Cdma1xEvdv: 
            case WwanDataClass.Cdma1xRtt: 
            case WwanDataClass.Cdma3xRtt: 
            case WwanDataClass.CdmaUmb: 
            case WwanDataClass.Umts: 
            case WwanDataClass.Hsdpa: 
            case WwanDataClass.Hsupa: 
            //4G-equivalent 
            case WwanDataClass.LteAdvanced: 
             return (ConnType.CONN_MOBILE); 

            //not connected 
            case WwanDataClass.None: 
             return (ConnType.CONN_NO); 

            //unknown 
            case WwanDataClass.Custom: 
            default: 
             HttpClient httpClient = new HttpClient(); 
             httpClient.Timeout = new TimeSpan(0, 0, 0, 0, 300); 
             try 
             { 
              httpClient.GetAsync(new Uri("http://www.myexample.com")).Wait(); 
              return (ConnType.CONN_MY); 
             } 
             catch (Exception ex) 
             { 
              NotifyUser("Unexpected exception occurred: " + ex.ToString()); 
             } 
             return (ConnType.CONN_WAN); 
           } 
          } 
          return (ConnType.CONN_MOBILE); 
         } 
        } 
        catch (Exception ex) 
        { 
         NotifyUser("Unexpected exception occurred: " + ex.ToString()); 
         return (ConnType.CONN_NO); 
        } 
       } 
    } 

내가 잘못한 것을하면. 좋은 아이디어가 있다면, 나는 감사 할 것입니다. 나는 그렇게 테스트했지만 아무 일도 일어나지 않는다.

public sealed partial class TestPage : Page 
     { 
    public TestPage() 
      { 
    InitializeComponent(); 
    if (NetworkUtils.ConnType.CONN_MY.ToString().Equals("CONN_MY"){ 
    TextBlock.Text = "GOOD Connection"; 
    } else if (NetworkUtils.ConnType.CONN_WIFI.ToString().Equals("CONN_MY"){ 
    TextBlock.Text = "WIFI Connection"; 
    } 
    ... 

    } 
} 

답변

0
var generation = new NetworkUtils().GetConnectionGeneration(); 
swtich (generation) 
{ 
    case NetworkUtils.ConnType.CONN_MY: 
    { 
     //... 
     break; 
    } 
    case NetworkUtils.ConnType.CONN_WIF: 
    { 
     //... 
     break; 
    } 

    // othes cases 

    default: 
    // handle exceptional case 
} 
0
var gen = new NetworkUtils().GetConnectionGeneration(); 
if (gen == NetworkUtils.ConnType.CONN_MY) { 
    //... 
} 

문제는 당신이 열거 형 멤버 (CONN_MY)의 toString을 확인하는, 그래서 문은 항상 true이고, 항상 Good Connection 표시됩니다 경우의 첫 번째 줄. 먼저 GetConnectionGeneration()으로 전화해야합니다.

관련 문제