Android: проверьте соединение с сервером - PullRequest
5 голосов
/ 07 февраля 2012

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

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

Как я мог это реализовать?

Ответы [ 3 ]

25 голосов
/ 07 февраля 2012

Вы можете сделать что-то вроде:

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;
    }
}

Это попытается подключиться к URL-адресу вашего сервера, и в случае сбоя у вас, очевидно, нет соединения.; -)

3 голосов
/ 07 февраля 2012

Вы можете попробовать

InetAddress.getByName(host).isReachable(timeOut)
1 голос
/ 07 октября 2013
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();
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...