2014-01-17 3 views
1

이 가이드 http://www.codeproject.com/Articles/408457/Using-Bing-Maps-For-Windows-8-Metro-Apps-Csharp-Ja을 사용하여 Cing에서 Bing 맵 sdk를 사용하여 Windows 8.1 앱을 만들고 있습니다.빙판 맵 API를 사용하여 Windows 8 앱에서 인터넷에 연결하지 마십시오

이제 인터넷에 연결하지 않고이 앱을 사용하면 앱이 다운됩니다. 그렇다면이 인터넷 연결 예외를 어떻게 처리 할 수 ​​있습니까?

+0

"그렇다면이 인터넷 연결 예외를 어떻게 처리 할 수 ​​있습니까?" - 프로그램에서 통제하지 못하는 다른 문제를 다루는 것과 같은 방식으로 예외가 발생하면 예외를 잡은 다음 방금 시도한 내용을 다시 시도할지 아니면 그냥 포기하고 말할 것인지 결정해야합니다 그 사용자. 현재 응답은 모두 똑같이 잘못된 방향으로 향하고 있습니다. 왜냐하면 그들은 여러분의 프로그램 제어하에 있지 않고 언제든지 실제 상태를 바꿀 수있는 무언가를 "사전 점검"할 수 있다고 믿기 때문입니다. –

답변

2

인터넷 여기

public static bool IsInternetAvailable 
{ 
    get 
    { 
     var profiles = NetworkInformation.GetConnectionProfiles(); 
     var internetProfile = NetworkInformation.GetInternetConnectionProfile(); 
     return profiles.Any(s => s.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess) 
      || (internetProfile != null 
        && internetProfile.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess); 
    } 
} 

if(App.IsInternetAvailable) 
{ 
    //Do operation of Bing map 
} 
else 
{ 
    //Show message dialog 
} 
+0

interneo의 [대답] (http://stackoverflow.com/a/21184556/15498)에 대한 내 의견보기 - 같은 질문은이 속성에 대해 질문 할 수 있습니다. –

0

먼저 확인해주세요.

방법으로 예를 들어

:

public static bool CheckForInternetConnection() 
{ 
    try 
    { 
     using (var client = new WebClient()) 
     using (var stream = client.OpenRead("http://www.bing.com")) 
     { 
      return true; 
     } 
    } 
    catch 
    { 
     return false; 
    } 
} 
+0

귀하의 코드는 Windows Phone 용이라고 생각합니다. 하지만 내 애플 리케이션은 윈도우 8.1 애플 리케이션입니다 –

+0

미안 해요, 내 실수. 코드를 수정했습니다. – Rayet

+1

그리고이 함수가 반환 된 직후에 코드가 결과로 어떤 일을 수행하기 전에 외부의 현실이 바뀝니다. 따라서이 함수가 true를 반환 한 후에도 인터넷을 사용할 수 없거나이를 사용하여 부분적으로 변경해야하는 코드를 작성해야합니다. 견고한 소프트웨어를 생산하기 위해 어쨌든 *이 코드를 작성해야한다는 것을 감안할 때,이 함수를 호출 할 때 어떤 이점이 있습니까? –

0

사용할 수인지 아닌지 테스트하는 데 사용으로 App.xaml.cs에서이 속성을 넣어 윈도우 8.1

public static bool have_net() 
    { 
     ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile(); 

     if (InternetConnectionProfile == null) return false; 

     NetworkConnectivityLevel ncl = InternetConnectionProfile.GetNetworkConnectivityLevel(); 

     if (ncl == NetworkConnectivityLevel.InternetAccess) 
     { 
      return true; 
     } 

     bool b1 = InternetConnectionProfile.IsWwanConnectionProfile; 
     bool b2 = InternetConnectionProfile.IsWlanConnectionProfile; 

     return (b1 || b2); 
    } 
내 코드입니다
관련 문제