2015-02-02 2 views
0

네트워킹 연결 작업을하기 전에이 코드를 사용하여 연결을 설정합니다. NONE 인 경우 오류가 표시 될 수 없습니다. 이제 나는이 오류 메시지에 대해 불평하는 사용자의 사용자 보고서를 많이 받고 있는데, 다른 앱에서 인터넷을 사용할 수 있다고 말하고 있습니다.연결 테스트가 제대로 작동하지 않습니다.

final NetworkInfo activeNetwork = connectionManager.getActiveNetworkInfo(); 
if (activeNetwork == null || !activeNetwork.isConnected()) { 
     newNetworkType = NetworkStatus.NONE; 
} else { 
     if (activeNetwork.getTypeName().equalsIgnoreCase("MOBILE")) { 
       newNetworkType = NetworkStatus.LOW; 
     } else { 
       newNetworkType = NetworkStatus.HIGH; 
     } 
} 

이 코드는 NetworkChangedReceiver에 연결되어 끊임없이 업데이트됩니다. 이제이 코드가 제대로 작동하지 않는지 궁금합니다. 다른 방법에 의존해야합니까? 예를 들어 activeNetwork == null은 인터넷 연결이 없다는 것을 의미합니까? isConnected 대신 NetworkInfo.isAvailable을 사용해야할까요? What about isConnecting?

답변

1

글쎄,이 코드에는 많은 문제가있었습니다. 그래서 나는 다른 길을 완전히 선택했다.

내가하는 일은 내가 통신 할 웹 사이트를 핑 (ping)하는 것입니다.
그것은 두 가지

에 도움이

가) 인터넷
B의 상태를 확인하려면) 온라인 여부를

HttpURLConnection connection = null; 
try { 
    URL u = new URL("http://www.yourwebsite.com/"); 
    connection = (HttpURLConnection) u.openConnection(); 
    connection.setRequestMethod("HEAD"); 
    int code = connection.getResponseCode(); 
    // You can determine on HTTP return code received. 200 is success. 
} catch (MalformedURLException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} finally { 
    if (connection != null) { 
     connection.disconnect(); 
    } 
} 
귀하의 웹 사이트가
관련 문제