2016-08-17 5 views
7

Я работаю над проектом, который должен протестировать некоторые особенности Android и мобильных сетей. один из них, чтобы проверить надежность подключения к Интернету, чтобы сделать это я должен сначала проверить саму подключение к Интернету, а затем проверить надежностьКак реализовать тест, который проверяет надежность подключения к Интернету

Есть ли алгоритм или библиотеку, чтобы выяснить надежность подключения к Интернету

+0

я думаю, что существующий вопрос может частично ответить на вашу проблему http://stackoverflow.com/questions/1560788/how-to-check-internet-access-on-android-inetaddress-never-times-out – Bhavesh

+0

что вы подразумеваете под надежностью ??? я предполагаю, что вы можете регулярно проверять интернет-соединение, используя базовое соединение сокета. – Bhavesh

+0

Спасибо sir , но, как я уже сказал, сначала проверяю подключение к интернету, но затем мне нужно проверить надежность подключения к Интернету. Как: соединение надежное или нет. – 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

Вам нужно будет вызвать этот метод, когда вам нужно проверить силу Интернета. Вы всегда можете передать таймаут в качестве параметра метода, если вам нужно вызвать метод с разными тайм-аутами. – fluffyBatman