Intereting Posts
Как получить текущую локаль (API-уровень 24)? Вложенные предпочтения.xml Мое приложение стало значительно медленнее на Android 4.0 GetSupportedPictureSize () возвращает значение, которое фактически не поддерживается Nexus4 View.post () не вызван? OnClickListener не может быть разрешен для типа Android ExpandableListView с флажком, контроль состояния проверки Студия Android и устройство внешние Android HTTPUrlConnection: как установить почтовые данные в теле http? Как загрузить видео из папки с ресурсами? (Чтобы воспроизвести их с помощью VideoView) FATAL EXCEPTION: главная java.lang.NoClassDefFoundError: com.google.analytics.tracking.android.EasyTracker Блокировать входящие тексты (Android) Как исключить из ретентатов экспортированную деятельность? Пользовательская панель действий для вырезания / копирования для EditText, которая отображает дескрипторы выбора текста Android, ListView IllegalStateException: «Содержимое адаптера изменилось, но ListView не получил уведомление»

Ошибка подключения к Интернету

У меня есть приложение для Android, которое подключается к Интернету. Я улавливаю все возможные сценарии для подключения и замечаю, что, когда у меня нет подключения к Интернету, вызывается UnknownHostException . Я немного запутался здесь, так как получение UnknownHostException будет означать, что приложение смогло подключиться к Интернету, но не смог найти данный URL.

Я получаю правильное Исключение? Не могли бы вы объяснить, почему я получаю UnknownHostException в этом?

Кроме того, вы можете указать конкретные исключения для этих сценариев:

  • Когда нет подключения к Интернету.
  • Когда URL-адрес не найден.
  • Когда запрос истечет.
  • Когда сайт не работает.
  • Когда доступ запрещен.

Я также был бы признателен, если бы вы могли дать мне больше сценариев и исключений. Я должен уловить все возможные соединения и отобразить наиболее подходящее сообщение в зависимости от типа ошибки подключения.

Solutions Collecting From Web of "Ошибка подключения к Интернету"

Получение UnknownHostException будет означать, что приложение смогло подключиться к Интернету

Нет, нет. Это означает, что приложение не смогло решить имя хоста. Это может быть связано с тем, что имя хоста не существует или потому, что оно не удалось подключиться к Интернету для его устранения.

Когда нет подключения к Интернету.

Никакого конкретного исключения. «Нет подключения к Интернету» не имеет четко определенного смысла. Условие разрешает один из других режимов отказа ниже.

Когда URL-адрес не найден.

Если хост не найден, UnknownHostException . Если часть содержимого URL-адреса не найдена, HTTP 404.

Когда запрос истечет.

ConnectException с «отключенным SocketTimeoutException соединения» в качестве сообщения или SocketTimeoutException если это таймаут чтения.

Когда сайт не работает.

ConnectException с сообщением «connection отказано» как сообщение.

Когда доступ запрещен.

HTTP 403.

Проверка подключения к Интернету, просто попробуйте эту функцию …

 public static boolean CheckInternet(Context context) { ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); android.net.NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI); android.net.NetworkInfo mobile = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); return wifi.isConnected() || mobile.isConnected(); } 

Надеюсь, эта помощь ….

Для проверки возможности подключения к Интернету ….

 boolean b_IsConnect = isNetworkAvailable(); private boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager .getActiveNetworkInfo(); return activeNetworkInfo != null; } 

Чтобы проверить подключение к Интернету, используйте эту функцию.

  public boolean isConnectingToInternet(){ ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) for (int i = 0; i < info.length; i++) if (info[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } return false; }