Android: трансляция или обратный вызов, когда Интернет недоступен, но подключен к сети

Я должен справиться со следующим своеобразным сценарием:

  • Мой телефон и, следовательно, приложение подключено к маршрутизатору Wi-Fi.
  • Теперь кабель Ethernet к маршрутизатору удален, поэтому подключение к Интернету потеряно.
  • Но телефон все еще подключен к этому Wifi Router.

Есть ли трансляция или обратный вызов, который я мог бы получить, когда происходит описанный выше сценарий?

1 ответ

Самый простой и легкий способ: пинг на любой сервер, как здесь. Пингую в гугле, проверяю, пустой ответ или нет;) ... Этот вызов функции в андроид активности, когда у вас есть сомнения относительно возможности подключения.

public void GET(){

    String result = "";
    HttpResponse response;
    HttpEntity entity;

    try {

        HttpPost httppost = new HttpPost("http://google.com");
        DefaultHttpClient httpclient = getHttpClientImpl();

        response = httpclient.execute(httppost);
        entity = response.getEntity();

        if (entity != null) {
            InputStream is = entity.getContent();
            if (is != null) {
                StringBuilder sb = new StringBuilder();
                String line;
                try {
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(is, "UTF-8"), 8 * 1024);
                    while ((line = reader.readLine()) != null) {
                        sb.append(line);// .append("\n");
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    is.close();
                }
                result = sb.toString();
                if (responseXML.equals("")){

                //  Internet connectivity is lost.

                }else {

                //  Internet connectivity still here xnjoy.

                }

            }
            entity.consumeContent();
        }
        httpclient.getConnectionManager().shutdown();

    } catch (Exception e) {
        Log.d("InputStream", e.getLocalizedMessage());
    }

 }
Другие вопросы по тегам