2016-08-17 3 views
7

나는 안드로이드 및 모바일 네트워크의 일부 기능을 테스트해야하는 프로젝트를 진행 중이다. 그들 중 하나 내가 먼저 신뢰성인터넷 연결의 신뢰성을 검사하는 테스트를 구현하는 방법

를 인터넷 연결 자체를 확인하고 확인해야 인터넷 연결의 신뢰성을 찾을 수있는 알고리즘 또는 라이브러리가 할 일은 인터넷 연결의 신뢰성을 확인하는 것입니다

+0

내가이 기존의 문제는 부분적으로 문제 http://stackoverflow.com/questions/1560788/how-to-check-internet-access-on-android-inetaddress-never-times-out – Bhavesh

+0

에 대답 할 수 있다고 생각 당신은 신뢰성에 의해 무엇을 의미합니까 ??? 기본 소켓 연결을 사용하여 정기적으로 인터넷 연결을 확인할 수 있다고 가정합니다. – Bhavesh

+0

고맙습니다. 하지만 처음에는 인터넷 연결을 테스트했지만 그 다음에는 인터넷 연결 안정성을 테스트 할 필요가 있습니다. 연결은 안정적인지 아닌지. – Martin

답변

0

아마도 알려진 사이트에 요청을 보내서 인터넷 연결이 안정적인지 확인하여 주어진 시간 내에 응답을받을 수 있는지 확인할 수 있습니다.

public boolean checkInternet(){ 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
     if (netInfo != null && netInfo.isConnected()) 
       try { 
         URL url = new URL("http://www.google.com"); 
         HttpURLConnection urlc = (HttpURLConnection) url 
               .openConnection(); 
         urlc.setConnectTimeout(3000); 
         urlc.connect(); 
         if (urlc.getResponseCode() == 200) { 
           // Means response is available within 3 seconds 
           // So, return true or do something else. 
           return true; 
         } 
       } catch (MalformedURLException e1) { 
         // TODO Auto-generated catch block 
         e1.printStackTrace(); 
       } catch (IOException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
       } 
     return false; 
} 
+0

시간을 5000으로 설정하면 5 초 이내에 다시 연결을 확인하거나 그 루프를 만들어야합니까? – Martin

+0

인터넷 강도를 확인할 필요가있을 때마다이 메소드를 호출해야합니다. 타임 아웃이 다른 메소드를 호출해야하는 경우 항상 메소드 param으로 타임 아웃을 전달할 수 있습니다. – fluffyBatman