Программа для андроид отключение спящего режима. Как сделать чтобы не гас экран Андроид — настраиваем «спящий режим» на своём устройстве

Давным-давно, когда Android еще не был мейнстримом, любой разработчик мог написать приложение, которое сможет спокойно висеть в фоне и в режиме реального времени обмениваться данными с сервером. Но чем дальше, тем более жесткие техники сохранения энергии применяет Google, и сегодня так просто сетевое реалтаймовое приложение уже не реализуешь. Однако есть несколько трюков, которые позволяют это сделать.

Давай представим, что у нас есть приложение, а у него, в свою очередь, есть служба (service), которая должна постоянно висеть в фоне, обрабатывать команды, полученные от сетевого сервера, и отправлять ответы. Связь с сервером, как это и положено мобильным устройствам, поддерживается с помощью long poll запросов, то есть приложение подключается к удаленному серверу и ждет, пока тот отправит что-либо в ответ, а потом переподключается и ждет снова. Это эффективный и очень экономный в плане заряда батареи способ, который в том числе используется в механизме push-уведомлений самого Android.

В теории все выглядит отлично, архитектура приложения абсолютно правильная, вот только, если начать его тестировать, вскроется несколько очень неприятных моментов.

Режимы энергосбережения Android

В Android 4.4–5.1 (версии ниже мы рассматривать не будем - они стремительно устаревают) служба будет работать и моментально откликаться на запросы сервера, но только до тех пор, пока экран включен. Через несколько секунд после отключения экрана смартфон перейдет в режим сна (suspend), и промежуток между отправкой запроса и ответом нашего приложения будет составлять примерно минуту. Это срок между maintenance-пробуждениями устройства, и повлиять на него мы не можем.

В Android 6.0–7.1 ситуация будет примерно такой же, однако спустя примерно час смартфон перейдет в так называемый . После этого ответ от приложения можно либо не получить вовсе, либо получить спустя час или два. А все потому, что в режиме Doze смартфон фактически не дает работать сторонним приложениям и их службам и полностью отрезает им доступ в Сеть. Управление они могут получить только на короткий промежуток времени спустя час после перехода в режим Doze, затем два часа, четыре часа, со все большим увеличением промежутков между пробуждениями.

Хорошие новости в том, что Doze работает общесистемно и включается спустя час после отключения экрана и только если не трогать смартфон (в 7.0–7.1 можно и трогать), а отключается сразу после разблокировки смартфона, подсоединения к заряднику или движения смартфона (опять же не в 7.0–7.1). То есть можно надеяться на то, что хотя бы днем наш сервис будет работать нормально.

Плохие же новости в том, что, помимо Doze, в Android 6.0–7.1 есть и другой механизм энергосбережения под названием App Standby. Работает он примерно так: система следит за тем, какие приложения использует юзер, и применяет к редко используемым приложениям те же ограничения, что и в случае с режимом Doze. При подключении к заряднику все переведенные в режим Standby приложения получают амнистию. К приложениям, имеющим уведомление или права администратора (не root), режим Standby не применяется.

Итого, в Android есть сразу три механизма, с которыми придется бороться:

  • Suspend - обычный режим энергосбережения, может замедлить получение ответа от устройства примерно на одну минуту;
  • App Standby - агрессивный режим энергосбережения, способный замедлить получение ответа на сутки;
  • Doze - агрессивный общесистемный режим энергосбережения, который применяется ко всем приложениям.

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

Сценарий 1. Небольшая задержка в ответе некритична, переход в Doze некритичен

В этом сценарии у тебя есть приложение, для которого задержка в ответе до одной минуты некритична, а переход смартфона в режим агрессивного энергосбережения совсем не страшен. Все, что тебе нужно, - это чтобы система не отправляла приложение в состояние Standby.

Два самых простых способа добиться этого - либо вывести службу на передний план (foreground service), либо дать приложению права администратора устройства. Начнем с первого варианта.

Foreground service

Foreground service в терминологии Android - это служба, которая имеет уведомление в шторке. Система относится к таким службам гораздо бережнее. Например, при нехватке памяти она будет убита в последнюю очередь, она не будет убита при смахивании приложения в меню управления запущенными приложениями, и да, к ней не будет применен режим Standby.

Создать foreground service очень просто. Достаточно вставить в код службы примерно такие строки:

Intent notificationIntent = new Intent(this, ExampleActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); Notification notification = new Notification.Builder(this) .setContentTitle(getText(R.string.notification_title)) .setContentText(getText(R.string.notification_message)) .setSmallIcon(R.drawable.icon) .setContentIntent(pendingIntent) .setTicker(getText(R.string.ticker_text)) .build(); startForeground(0, notification);

Этот пример создает уведомление, при тапе на которое будет запущена ExampleActivity, в конце с помощью startForeground() служба переводится в статус foreground.

Права администратора

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

В свое время Google ввела понятие «администратор устройства» для компаний, которые хотели бы управлять смартфонами своих сотрудников. То есть компания создает приложение, которое получает права администратора и может заблокировать или сбросить телефон после команды от сервера. Именно поэтому приложение с правами администратора не переходит в режим Standby, ведь команда на блокировку может прийти в любой момент.

Получить, а точнее запросить права администратора опять же просто. Для начала нам понадобится пара колбэков, которые будут вызваны после того, как права получены или отозваны:

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.

В отличие от iOS и Windows Phone, на Android в фоновом режиме может работать множество приложений и сервисов. Все они создают дополнительную нагрузку на оперативную память и процессор, а значит, расходуют драгоценную энергию. Причем, они работают даже тогда, когда не нужно — например, ночью, в то время как вы спите.

Решить проблему чрезмерного потребления Android-приложениями ресурсов устройства можно несколькими способами: запретить приложениям, которыми вы пользуетесь редко, запускаться вместе с загрузкой системы или более радикально - отключать Wi-Fi, мобильный интернет и большинство фоновых процессов.

1. Установите его из Google Play, запустите.

2. Зайдите в раздел Phone Boost, нажмите кнопку «Autostart Manager», там показаны все приложения, которые запускаются при включении устройства.

3. Просмотрите список и отключите автозапуск тех приложений, которые, как вы считаете, не должны все время работать фоном.


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


Более серьезной экономии ресурсов можно добиться с помощью приложений, которые при выключении экрана уводят устройство в глубокий сон. Одно из таких приложений - . Оно позволяет отключить модуль 3G, интернет, Bluetooth, синхронизацию данных и сильно ограничить работу фоновых процессов.

Как работать с Deep Sleep Battery Saver:

1. Установите его из Google Play, запустите и предоставьте ему root-права.

2. При желании смените язык интерфейса на русский.


3. Зайдите во вкладку «Профиль» и выберите, что будет происходить, когда экран вашего устройства выключен. Чем более строгая экономия, тем меньше ресурсов устройства будет расходоваться.

4. В настройках Deep Sleep Battery Saver можно выбрать приложения для «белого списка» - они смогут работать фоном, даже если активирован глубокий сон.

При использовании Deep Sleep Battery Saver время автономной работы устройства может продляться в разы, и при этом смартфон не отвлекает вас всякий раз, когда вам приходит новое письмо или сообщение. Правда, уведомления будут приходить с задержкой - только когда приложение включит интернет.

Знакомая ситуация: вы считываете некую информацию с экрана смартфона, а дисплей в этот момент затухает. А если на прочтение потребуется не несколько секунд, а значительно больше? Понятно, что постоянное нажимание кнопки включения, мягко говоря, раздражает.

Как сделать чтобы не гас экран Андроид? Оказывается, ситуация не столь критична как может показаться. Для её решения существует несколько способов, о которых мы сейчас поговорим.

Чтобы отрегулировать отключение экрана своего телефона, используя предустановленные инструменты, нужно зайти в «Настройки «, открыть раздел «Экран «, выбрать пункт «Спящий режим » и выставить там комфортное для вас время «бодрствования» смартфона, после которого экран будет гаснуть, или вообще убрать спящий режим, отметив соответствующую строку:

Как отключить тайм аут экрана с помощью стороннего софта

Думаю, не стоит особо вдаваться в подробности, для чего нужна функция «Спящий режим», или отключение экрана через определённый промежуток времени (таймаут от англ. timeout – время ожидания). Понятно, что, если смартфон будет находиться постоянно в активном режиме, то заряд батареи слишком быстрыми темпами начнёт стремиться к нулю.

В таком случае проблема легко решается с использованием специальных утилит.

Hold Screen On Demo

Эта программа не даст погаснуть экрану, пока вы на него смотрите. С помощью фронтальной камеры Hold Screen ON улавливает ваш взгляд и не даёт смартфону «уснуть». Когда же вы перестаёте смотреть на экран, он затухает и, соответственно, прекращается потребление ресурсов.

Есть возможность привязать работу утилиты к конкретному приложению, и тогда экран телефона не будет гаснуть, определяя ваши глаза в этом приложении, однако, если ваша камера будет работать в другом приложении, то программе придётся подождать, пока она освободится.

Владельцы Samsung Galaxy S3 пользуются этой функцией без установки утилиты, поскольку в этой модели она присутствует по умолчанию, а если у вас более простой аппарат, то нужно просто скачать Hold Screen ON :

KeepScreen (now free)

Ещё одно хорошее приложение, которое отлично справляется с задачей отключения таймаута. В отличие от предыдущего, Keep Screen контролирует положение аппарата, используя встроенный гироскоп. Поэтому, когда вы держите свой гаджет в руках, утилита, учитывая его угол наклона относительно горизонтальной оси, не даст экрану погаснуть.

Кроме того, здесь тоже есть возможность заблокировать отключение экрана на Андроид-устройстве для выбранных приложений. Для этого, после указания нужной программы, нажимаем»Start/stop service «, а на телефоне, в датчике погашения экрана (см. первый скриншот) выставить интервал 30 секунд.

Keep Screen бережно относится к ресурсам смартфона и работает в фоновом режиме, для этого нажимаем «On », а после этого «Save and restart app ».

Важно! Если выключить (заблокировать) аппарат, используя кнопку питания, во время работы программы, то по истечении тридцати секунд экран включится и уже не погаснет. Поэтому, прежде чем блокировать гаджет кнопкой питания, нужно закрыть приложение или просто вернуться на основной рабочий стол.

По сегодняшней теме нам больше нечего добавить, а, насколько была полезна представленная информация, судить, конечно, вам. Удачи!

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

Чтобы включить или отключить спящий режим в Android, необходимо перейти в соответствующие настройки. В зависимости от модели смартфона они несколько отличаются, хотя и незначительно.

Как это сделать

Когда возникает необходимость включить/отключить спящий режим в Android, нужно перейти в основное меню настроек телефона и найти опцию «Дисплей» или «Экран». При нажатии на эту ссылку появится вкладка «Спящий режим». Здесь устанавливается временной интервал, по истечению которого устройство автоматически перейдет в спящий режим в Android. Установив галочку «Никогда», вы отключаете возможность работы устройства в спящем режиме, поэтому оно будет активно функционировать все время, пока телефоном никто не пользуется.

Возможные проблемы

Иногда возникают ситуации, когда необходимо выключить дисплей мобильного устройства, не активируя спящий режим. Стандартный вариант – экономия батареи смартфона, когда он подключен к телевизору при помощи HDMI-кабеля.

Основная проблема состоит в том, что если выключить смартфон, то энергия не будет идти по HDMI кабелю, в результате чего последует затухание экрана телевизора, так как телефон находится в спящем режиме. Приведем еще 1 пример – на планшете запущена . Затем к устройству подключается клавиатура или мышь с помощью док-станции. Изображение выводится на экран. Повторяется упомянутая проблема. Нельзя выключить экран телефона без перехода в спящий режим. Если ничего не делать, то смартфон быстро разрядится. Стандартными настройками решить задачу невозможно.

Решение

Необходимо скачать под названием Screen Standby. Средствами программы можно отключить дисплей при полной работоспособности телефона. Загрузить приложение можно через сервис Google Play на бесплатной основе.

Отныне просматривать фильмы, запускать игровые приложения и работать в интернете можно на большом экране, подключив телефон к телевизору. Существенно экономится заряд. Хотим заметить, что на текущий момент не существует достойных аналогов этому программному обеспечению. Чтобы утилита корректно функционировала, следует установить root права доступа. С помощью Screen Standby можно выключать подсветку в автоматическом режиме в момент подключения HDMI-кабеля, а также перевести дисплей телефона в тачпад-режим.

На многих смартфонах и планшетах под управлением Android экран отключается через 30 секунд бездействия пользователя. Как правило, это оптимальный вариант, при котором можно комфортно пользоваться устройством и экономно расходовать заряд его батареи. Но бывают моменты, когда необходимо отключить спящий режим при работе какого-либо приложения. Так как штатными средствами Android сделать это невозможно, мы расскажем, как это реализовать другими способами.
Для начала, давайте определимся, зачем нам может понадобиться отключать тайм-аут экрана, ведь лишнее время работы экрана приводит к быстрой разрядке аккумулятора? Например, вы читаете статью в браузере или смотрите видео в YouTube, делаете паузу и через минуту ваше устройство уже спит крепким сном. Или другой вариант – вы используете смартфон в качестве пульта управления или демонстрируете слайды. Таким образом, самыми распространенными случаями, когда требуется постоянно активный экран, являются:

  • чтение электронных книг, документов, другой текстовой информации;
  • просмотр фото- и видеоматериалов;
  • демонстрация чего-либо на экране смартфона;
  • игры, геймплей которых не требует активных действий;
  • работа с GPS и картографическими программами.
Некоторые программы и игры отлично справляются с этой задачей самостоятельно. Обычно, во многих читалках, видеоплеерах и других приложениях в настройках есть опция, препятствующая засыпанию устройства. Но далеко не во всех. В таких случаях проще всего в системных настройках выставить более длительный тайм-аут экрана для активного режима. Но, согласитесь, это даже не столько неудобно, сколько нерационально. Поэтому мы поступим по-другому и будем использовать сторонние средства для тонкой настройки блокировки экрана.

Способ 1. Модуль Xposed

Этот способ требует наличие на устройстве и установленной специальной среды выполнения . Модуль, который нам необходимо подключить к Xposed Framework, называется Stay Awake – Keep On Screen . Он позволяет легко отключать блокировку экрана на определенных приложениях и возвращаться к предыдущим настройкам тайм-аута экрана.

Как загрузить и установить Stay Awake – Keep On Screen:
После всех этих действий можно использовать функцию включения/отключения спящего режима на системном уровне для каждого приложения. Работает это очень просто. Чтобы запретить экрану отключаться, просто зажмите обе кнопки громкости в любом активном приложении. Вы увидите надпись «Stay Awake Enable» – это означает, что экран в текущем приложении будет включен постоянно.

Использование этого модуля удобно тем, что он запоминает, в каких приложениях вы отключили тайм-аут экрана, и можно в любой момент вернуть все обратно простым нажатием кнопок громкости. Работает эта функция даже на уровне родного лаунчера.

Способ 2. Приложения

Это приложение в русскоязычном Google Play известно под названием «Негаснущий экран». Маленькая утилита с приятным дизайном имеет одну единственную функцию – не давать устройству переходить в спящий режим при работе выбранных приложений. Чтобы ее активировать, просто запустите Keep Screen On и отметьте необходимые приложения, во время работы которых вы хотите оставить экран постоянно включенным.


Утилита умеет работать со всеми установленными на устройстве программами, включая системные службы. Преимуществом Keep Screen On является простота использования и тот факт, что приложение абсолютно бесплатное и не содержит рекламы.


Еще одно бесплатное, но более функциональное приложение под названием Stay Alive!, которое также умеет управлять тайм-аутом экрана. Утилита позволяет задать правила отключения экрана не только для выбранных приложений, но и для тех программ и системных служб, которые не были отмечены. При этом Stay Alive! не имеет никаких фильтров или дополнительных опций для приложений и показывает все установленные на устройстве программные компоненты в общем списке. А если у вас установлено, к примеру, 100+ приложений, тогда лучше воспользоваться поиском. Особенностью утилиты является то, что она позволяет не отключать экран, даже когда конкретная программа не запущена, но работает в фоне.


Stay Alive! имеет несколько режимов работы:
  • активный режим во время зарядки устройства;
  • активный режим во время зарядки и при работе от аккумулятора;
  • режим паузы (неактивный режим);
  • автоматический режим с правилами для выбранных приложений.
Переключаются они с помощью небольшой панели, которая прячется за шторкой.


Стоит признать, Stay Alive! выполняет свою основную задачу на 5+. Приложение не просто запрещает устройству уходить в спящий режим, а предлагает индивидуальные настройки для различных условий. Например, можно запретить экрану выключаться при зарядке, при подключении к автомобильной док-станции или вообще полностью отключить тайм-аут экрана. Помимо этого, Stay Alive! может приостанавливать свое действие, когда заряд батареи достигает заданного процента.

Среди дополнительных функций есть очень полезная опция «Allow the screen to dim», которая позволяет затемнять экран, но не выключать его полностью.


Единственный недостаток Stay Alive! – это платные функции, самой важной из которых является автозагрузка приложения. Так что, если вы пользуетесь бесплатной версией, вам придется каждый раз после включения/перезагрузки устройства вручную запускать утилиту.

А как вы настраиваете тайм-аут экрана вашего мобильного устройства? И приходилось ли вам запрещать экрану отключаться в определенных программах?



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: