2016-10-01 6 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) { 
    //... 
} 

問題文が常に真であり、それは常にGood Connectionを表示する場合は、列挙型のメンバー(CONN_MY)のtoStringをチェックするので、あなたの最初の行されています。最初にGetConnectionGeneration()に電話しなければなりませんでした。

関連する問題