Подтвердить что ты не робот

Андроид HTTP-сервер недоступен с других устройств в сети с перерывами

Я использую NanoHTTPD для представления веб-сервера в приложении для Android. Я использую wifi-блокировку, чтобы поддерживать сеть в сети, и блокировку CPU, чтобы поддерживать процессор в состоянии готовности, и поддерживая его работу через службу переднего плана, чтобы он никогда не умирал.

Что я нахожу, так это то, что он будет доступен с других устройств в течение получаса, а затем не будет доступен в течение получаса. Всякий раз, когда это становится недоступным, я могу открыть сафари на устройстве Android и перейти к 0.0.0.0:30000 и убедиться, что сервер действительно запущен. И я также проверю, чтобы убедиться, что Wi-Fi подключен, что кажется.

Любые предложения о том, где искать?

4b9b3361

Ответ 1

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

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

Ответ 2

Отладка предложений

Когда он станет недоступным, вы можете проверить, действительно ли работает сетевое соединение? Не просто показываться как "подключенный" в пользовательском интерфейсе, но фактически работает с HTTP-соединениями с удаленными серверами. Может ли ваш локальный HTTP-сервер внезапно стать доступным с удаленного компьютера, когда вы это сделаете? Выбирая, вы можете смотреть ваш сервер удаленно:

watch curl http://{android_ip}:3000/

Вы держите экран включен или экран выключается? Это может быть неудачная реализация PowerLock.

Это происходит с другими беспроводными маршрутизаторами? Это может быть проблемой с Wifi Power Save Mode (PSM).