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