CN1 Connectivity - Проблемы, связанные с нестабильностью интернета в общественных местах. - PullRequest
0 голосов
/ 28 июня 2018

Я использую библиотеку подключений, чтобы увидеть, что интернет (данные Wi-Fi или сети) активен, и сохранить данные в хранилище, если нет подключения (в автономном режиме), и синхронизироваться с сервером при подключении к Интернету. У меня проблемы в общественных местах, где интернет постоянно нестабилен (особенно в подвалах, офисах, магазинах, кофейнях и т. Д., Где есть интернет, входящий и выходящий). Когда я проверяю, что Связь активна, но к тому времени, когда я начал синхронизацию, Интернет отключается (что-то вроде этого). это приводит к непоследовательным / частичным обновлениям на сервере. Кроме того, в кафе и аэропортах, где подключен Wi-Fi, но есть страница «Согласиться с условиями» для подключения. Не все браузеры сразу перейдут на эту страницу после подключения к Wi-Fi. В этом случае я вижу, что Wi-Fi активен в мобильном телефоне, но на самом деле он не активирован, пока я не приму положения и условия в IE или каком-либо конкретном браузере. Кто-нибудь еще сталкивался с трудностями при решении подобных проблем в мобильном приложении?

Мое приложение - зависает на экране входа в систему, если я пытаюсь войти в систему при нестабильном / непротиворечивом подключении к Интернету. Я думаю, что Wi-Fi есть, но его нет. Если я нахожусь на экране, где я буду отображать список, экран будет отображаться пустым в течение бесконечного времени. Добавление таймаута для запроса / ответа сервера или чего-то такого поможет.

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

enter image description here

Код:

  public boolean isOffline() {
        if (Connectivity.isConnected() && forceOffline) {
            relogin();
        }
        return forceOffline || !Connectivity.isConnected();
    }

1 Ответ

0 голосов
/ 28 июня 2018

Проблема в том, что невозможно правильно определить онлайн / офлайн, так как вы можете быть подключены к локальной сети Wi-Fi / сети, но это может быть плохое соединение, которое не позволит вам добраться до сервера. Что касается библиотеки, то вы связаны ... Но на самом деле у вас нет связи.

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

Далее вам нужно обработать эти случаи один за другим и предоставить пользователю возможность переключения в автономный режим. К сожалению, нет серебряной пули для надежности сети. Вам просто нужно пройти каждый путь и попытаться обнаружить эти вещи.

...