2012-02-07 23 views
5

Yani sahip cihaz internete bağlı olup olmadığını kontrol eden bir yöntem based on this oneAndroid: sunucuya bağlantıyı kontrol

Tamam çalışır, ancak vakaların bir çift ben telefon gösterileri bağlı olmalarına rağmen bulmak İnternet, hala benim sunucuya erişim yok. Gerçekten yapmak istediğim şey, özel URL’ye bağlantıyı kontrol etmektir.

Bunu nasıl uygulayabilirim? Bu sunucunun URL'ye bağlanmaya çalışacaktır ve başarısız olursa, belli ki bir bağlantınız yoksa

public boolean isConnectedToServer(String url, int timeout) { 
    try{ 
     URL myUrl = new URL(url); 
     URLConnection connection = myUrl.openConnection(); 
     connection.setConnectTimeout(timeout); 
     connection.connect(); 
     return true; 
    } catch (Exception e) { 
     // Handle your exceptions 
     return false; 
    } 
} 

:

cevap

23

deneyebilirsiniz. Uzun bir olarak zaman aşımı belirtmek çünkü ;-)

+0

sizin aşağı oy olmuş olabilir, ama .setConnectTimeout (hangi kaçırmak-yazıldığından) sadece bir int değer kabul eder. –

+0

NetworkOnMainThreadException'ın farkında mısınız? .. – levi

+0

@levi, Ne yaptığınızdan emin değilim, bu yüzden cevabımın bunu yapmaması gerekecek mi? – AedonEtLIRA

2

Sen gibi bir şey yapabileceğini

InetAddress.getByName(host).isReachable(timeOut) 
0
Runtime runtime = Runtime.getRuntime(); 
      Process proc; 
      try { 
       proc = runtime.exec("ping -c 1"+ (String) getText(R.string.Server)); 
       proc.waitFor(); 
       int exit = proc.exitValue(); 
       if (exit == 0) { // normal exit 


       } else { // abnormal exit, so decide that the server is not 
          // reachable 


       } 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } // other servers, for example 
      catch (InterruptedException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
İlgili konular