Сотовый сигнал
Некоторые предпосылки, как объясняет ce4 в вопросе: «плохой» прием разряжает батарею быстрее? :
Схема трансивера разработана с учетом экономии энергии и максимально снизит мощность передачи, если прием хороший. Это также уменьшает значение SAR, которое является мерой облучения человеческого тела.
Если прием плохой, уровень сигнала должен быть соответствующим образом отрегулирован.
Вот что действительно стоит за этим: при плохом приеме устройство тратит много энергии, чтобы найти лучший / более сильный сигнал (или любой сигнал вообще, если он потерян). На следующем скриншоте 1 четко показаны те моменты, когда вы смотрите на полосу под названием « Сигнал телефона» .
«Чем зеленее, тем чище»: ярко-зеленый означает «хороший прием» (скриншот показывает это в начале и в конце, то есть здесь: утром и вечером - поэтому дома у меня хороший прием). Становится желтоватым: «Умеренный прием». Это использует больше энергии: сравните его с графиком сверху (не на скриншоте - но так же, как на первом скриншоте), и вы увидите, что полоса почти плоская, где сигнал ячейки хороший - но падает быстрее где это не так. Смотрите маленькие красные пятна: «нет приема». И телефон включится как сумасшедший, чтобы найти новую сотовую вышку ...
Как узнать, где находятся мертвые зоны?
Я уже показал в своем ответе на «плохой» прием разряжает батарею быстрее? как можно узнать о тех «мертвых зонах» и где они находятся:
Такие приложения, как No Signal Alert 2 и OpenSignalMaps 3, отслеживают сигнал ячейки в фоновом режиме и записывают эти области, чтобы они могли показать вам карту расположения мертвых зон. OpenSignalMaps имеет то преимущество , что показывает вам все доступные сотовые вышки, указывая на то, к чему вы подключены. Он также предлагает вам «компас», указывающий направление для самого сильного сигнала.
Однако мой ответ о том, как автоматически справляться с этими мертвыми зонами, был не таким подробным. Так что я немного поиграл с разными решениями - и вот что я узнал:
Как автоматически бороться с этими мертвыми зонами для экономии энергии?
Приложения для автоматизации режима полета
Я достиг довольно хороших результатов с двумя приложениями: Autopilot 4 и NoBars Battery Saver 5 . Обе контролируют сигнал ячейки и, когда он падает далеко, переключаются в режим полета в течение предварительно определенного времени. Пользователь может определить, как долго это будет. По истечении этого времени режим полета отключается, и контроль за ячейкой вступает во владение.
На втором графике моего вопроса это проявляется в виде «пробелов» на панели сигналов телефона : поскольку сотовая радиосвязь была отключена в режиме полета, цвета не отображаются; система ничего не знала о силе сигнала в этот период времени. И с выключенным сотовым радио, оно также не использовало дополнительную мощность (точнее, тогда оно не использовало никакой энергии для этого радио) - что было именно тем, что предполагалось.
С автопилотом единственным раздражающим побочным эффектом было: при каждой проверке сигнала он мигал на дисплее около секунды. Помимо этого, он дает больше возможностей для настройки пользователем. Однако, поскольку результаты обоих приложений абсолютно сопоставимы, эти дополнительные параметры кажутся не очень необходимыми, хотя их приятно иметь. Еще одним плюсом Autopilot является журнал, предоставляемый пользователю: таким образом вы можете видеть точное время переключения режимов.
Приложения для обработки данных сети
Я также протестировал ShutUpBatterySaver 6 , который предназначен для обработки трафика данных. Опуская ниже определенного уровня сигнала, который может определить пользователь, он отключает автосинхронизацию, а ниже второго определяемого уровня вообще отключает мобильный интернет.
Однако он никогда не активирует (или деактивирует) режим полета, поэтому мощность, используемая для получения (лучшего) сигнала, останется неизменной. Тем не менее, при плохом сигнале для передачи данных используется больше энергии, чем при хорошем сигнале, например, потеря пакета может быть больше. В строке состояния я несколько раз видел, что у него отключена AutoSync 7 , так что, похоже, работает. Не будучи пользователем данных с большим объемом данных (как показывает статистика LBE на том же снимке экрана), я не мог точно сказать, какую помощь это принесло: по сравнению с двумя вышеупомянутыми приложениями для работы в режиме полета, результаты с точки зрения увеличения времени работы от батареи были минимальными (если есть).
Комбинированное решение
Вероятно, это дало бы лучшие результаты, чтобы объединить два подхода. Поскольку у меня не было настроения проверять все возможные комбинации, я скорее выбрал всемогущее 6-буквенное решение: ТАСКЕР.
Как многие из вас, вероятно, знают, Tasker - это решение для автоматизации на Android. Полагаю, он мог бы даже приготовить кофе, если бы в наших устройствах были датчики для обнаружения кофе и воды. Поэтому я создал несколько профилей для этого замечательного приложения - и результаты были великолепны!
Таким образом, в основном это 3 профиля, которые общаются через общую переменную:
- % SIGSTATE <1: проверьте, падает ли сигнал ниже ~ 25%. Если это так, отключите мобильные данные, установите% SIGSTATE в 1.
- % SIGSTATE <2: проверьте, падает ли сигнал ниже ~ 15%. Если это так, переключитесь в режим полета, установите% SIGSTATE на 2.
- % SIGSTATE> 0: подождите 5 минут, затем отключите режим полета, активируйте мобильные данные, подождите еще 15 секунд (для восстановления сигнала), установите% SIGSTATE на 0.
В моем глобальном профиле Init (который выполняется, когда Tasker начинает мониторинг),% SIGSTATE установлен в 0 (если он не установлен). Все 3 вышеуказанных профиля дополнительно устанавливают уведомления, так как на скриншоте выше показано 9 . Каждое состояние поддерживает одно уведомление (которое заменяется, когда повторяется одно и то же состояние), наиболее актуальное состояние всегда находится внизу.
Результаты казались даже лучше, чем с двумя вышеупомянутыми приложениями для работы в режиме полета, но это также может быть связано с немного отличающимися условиями сигнала. Так что должно быть хотя бы сопоставимо. Используя одно из этих трех решений, я вернулся домой примерно через 11 часов, оставив заряд примерно на 20% больше, чем без применения какого-либо из них.
Сказав это, я закончу этот ответ, показывая созданные мной профили Tasker , так что вы можете использовать их при установке Tasker :
Задача "InitVars":
- Переменная -> Набор переменных:% SIGSTATE = 0
Задача "SigLow":
- Сеть -> Мобильные данные: выкл.
- Переменная -> Набор переменных:% SIGSTATE = 1
- Alert -> Notify Vibrate: заголовок "IzzySignal"; Текст: «Сигнал низкий; мобильные данные отключены (сигнал:% CELLSIG)»
Задача "SigLost":
- Переменная -> Набор переменных:% WLANSTATE = 0
- Переменная -> Набор переменных:% WLANSTATE = 1 IF% Wifi ~ on
- Сеть -> Режим полета: вкл
- Сеть -> Wi-Fi: включен, если% WLANSTATE ~ 1
- Переменная -> Набор переменных:% SIGSTATE = 2
- Alert -> Notify Vibrate: заголовок «IzzySignal», текст: «Потеря сигнала; вход в режим полета»
Задача "SigReturn":
- Задача -> Подождите: 5 минут
- Сеть -> Режим полета: выкл.
- Задача -> Ожидание: 15 секунд
(дайте устройству некоторое время, чтобы найти новый сигнал!)
- Net -> Mobile Data: На IF% ROAM ~ Off
(! Предотвратить неприятный сюрприз при возвращении из отпуска за границей)
- Переменная -> Набор переменных:% SIGSTATE = 0
- Alert -> Notify Vibrate: заголовок "IzzySignal", текст "Сигнал включен; режим полета отключен (сигнал:% CELLSIG)"
Теперь для профилей:
Профиль SigLowCheck:
- Состояние -> Переменная -> Значение переменной: имя "% SIGSTATE", операция "Математика: меньше чем", значение "1"
- Состояние -> Телефон -> Уровень сигнала: от 0 до 2
- Состояние -> Tasker -> Профиль активен: "SigLost", [x] Инвертировать
(убедитесь, что во избежание конфликта:% SIGSTATE ~ 0 && SignalStrength ~ 1 будет соответствовать условию обоих профилей)
- Задача: SigLow
Профиль SigLostCheck:
- Состояние -> Переменная -> Значение переменной: имя "% SIGSTATE", операционная система "Математика: меньше чем", значение "2"
- Состояние -> Телефон -> Уровень сигнала: от 0 до 1
- Задача: SigLost
Профиль SigReturnCheck:
- Состояние -> Переменная -> Значение переменной: имя "% SIGSTATE", операционная система "Math: Greater Than", значение "0"
- Задача: SigReturn
Профиль Init:
- Событие -> Tasker -> Запуск монитора
- Задача: InitVars
Теперь это просто базовая концепция, и ее можно расширить, например, воспроизведением звуков, вибрацией, миганием дисплея и многим другим. Но энергосберегающие устройства уже работают - и выполняют свою работу, как описано. Надеюсь, это поможет и вам!
Еще одно замечание: по крайней мере с GSM (я не могу сказать, для CDMA), возвращение из режима полета по умолчанию заставляет вас вводить PIN-код SIM-карты. Это, конечно, можно отключить, но в этом случае эта дополнительная защита также исчезает при включении телефона. Понятия не имею, почему это невозможно выборочно, как это было с моими телефонами до Android.
Однако для некоторых телефонов есть альтернатива некоторым элементам в вышеуказанных задачах, которые снимают это ограничение:
- В SigLost вместо Net -> Airplane Mode: On используйте Phone -> Radio: Off, если ваш телефон поддерживает это (мой Droid2 / Milestone2 нет, к сожалению). Если вы можете сделать это, проверка WiFi устареет (и ваш очиститель задач).
- В этом случае также необходимо изменить контрреакцию в SigReturn : вместо Net -> Airplane Mode: Off , используйте Phone -> Radio: On .
Пожалуйста, дайте мне знать в комментариях, если это снимает ограничение PIN-кода SIM-карты, поскольку я не могу проверить его (мое устройство не поддерживает его, как описано выше).
Отредактировано t0mm13b
Интересно, что я заметил, что в строке состояния появилось несколько значков задач, что сбивало с толку в отношении состояния, в котором выполнялись профили задач; Я обнаружил , что, установив титул для «Уведомлять Вибровызы» в каждом из перечисленных выше задач , то же самое, чистый результат, один сингулярное уведомление под названием « IzzyTasker » показывает вверх, с соответствующим сообщением используется вместо этого.