Блокировка WiFi не работает, как предотвратить энергосбережение Wi-Fi? - PullRequest
8 голосов
/ 16 декабря 2011

Я сделал приложение, которое превращает телефон в веб-камеру и использует телефонное соединение для отправки изображения в интернет-пространство.

Я использую рекламную активность, которая настраивает Alarm Manager на запуск Сервиса каждые 5 или 15 минут. Чтобы выполнить все выполнение Сервиса, я делаю пробуждение, но оно сбрасывается, когда сервис завершен.

Все это прекрасно работает с мобильной связью, но не работает с Wi-Fi.

Я установил в настройках wifi опции "НИКОГДА" для wifi sleep. Но через некоторое время (не всегда одно и то же) телефон, похоже, переходит в режим энергосбережения: значок wifi все еще находится в строке состояния, но телефон не может подключиться. Даже если я использую браузер ... поэтому я должен отключиться и вручную повторно подключиться. Сообщение в журнале: notify conn break (IOEx), close connection Даже с включенным телефоном !!!

почему? (1)

Проведение эксперимента с другим приложением, созданным действием, запускающим службу, всегда работающую с блокировкой пробуждения. Поэтому я добавил блокировку Wi-Fi, чтобы быть уверенным в подключении, но этот метод иногда запускается, а некоторые нет. Всегда один и тот же notify conn break (IOEx), close connection почему? (2)

Последний эксперимент получен из первого приложения (диспетчера аварийных сигналов), и чтобы быть уверенным, что Wi-Fi не переключается в режим сна / энергосбережения (с кем-то еще ??), у меня после выполнения телефон переключается в режим полета. кода, и я выключаю его (соединение включено), когда цикл начинается. Это работает нормально в течение двух дней, но только иногда это работает (каждый час или два, а не каждые 5 минут, а иногда не работает целый день, а затем перезапускается без какой-либо причины ...). Итак, почему режим полета иногда не восстанавливает соединение Wi-Fi? (а иногда это так?) (3)

Телефон представляет собой Samsung Galaxy ACE с оригинальной версией 2.2 и ВСЕГДА подключен для зарядки.

1 Ответ

5 голосов
/ 13 января 2012

Чтобы устройство не входило в режим энергосбережения, попробуйте использовать блокировку Wi-Fi типа WIFI_MODE_FULL_HIGH_PERF Это не публично доступно до Android 3.1.
но вы все равно можете использовать его жестко, значение WIFI_MODE_FULL_HIGH_PERF равно 3 (int).
Я попробовал это на устройстве до 3.1. Отлично работает! удачи!

...