Как проверить соединение с сервером доступно или нет в андроиде - PullRequest
2 голосов
/ 31 марта 2012

Проверка сетевого подключения может быть выполнена следующим способом:

 public boolean isNetworkAvailable() 
{
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = cm.getActiveNetworkInfo();

    if (networkInfo != null && networkInfo.isConnected())
    {
        return true;
    }
    return false;
}

Но я не знаю, как проверить соединение с сервером. Я следовал этому методу

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

}

это не работает .... Любые идеи, ребята !!

Ответы [ 2 ]

2 голосов
/ 31 марта 2012

вы можете проверить, доступно или нет подключение к серверу, используя isReachable():

netAddress address = InetAddress.getByName(HOST_NAME);
boolean  reachable = address.isReachable(timeout);

и используя время выполнения:

Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("ping www.google.com");
0 голосов
/ 27 мая 2015
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;
}

}

, а также добавить намеренное разрешение в манифест

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
...