Обычно при создании приложений для Android, требующих вызовов API и т. д., я проверяю NetworkAvailability перед выполнением таких вызовов следующим образом:
public boolean networkIsAvailable() {
boolean result = false;
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
if (activeNetworkInfo != null) {
if (activeNetworkInfo.isConnected()) {
result = true;
}
}
return result;
}
Достаточно просто ... Но что происходит, когда, скажем, пользователь находится на устройстве, которое не имеет мобильного подключения и подключено к сети Wi-Fi, но эта сеть Wi-Fi не имеет доступа в Интернет.
Существуют ли варианты, кроме перехвата java.net.UnknownHostException для проверки фактического доступа в Интернет?