2015-10-10 5 views
4

Новый режим Doze на Android 6 отключает почти все полезные действия фона. У меня есть приложение, которое регулярно разбудило устройство (даже если оно не заблокировало экран), сохраняло частичную блокировку слежения, делало некоторые сканирование и сообщало об этом в Интернет. Это не шпионское приложение - эта операция специально и известна пользователям приложения.Как отключить Doze для приложения?

Сразу с Android 6 он больше не работает, потому что режим Doze предотвращает окончательную связь с моими серверами.

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

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

Разве этот параметр не должен отключать Doze для определенных приложений?

Подробности дремать здесь http://www.androidpolice.com/2015/06/01/android-m-feature-spotlight-this-is-exactly-how-doze-reduces-battery-drain/

+2

Просто убедитесь, что вы видели новое руководство от Google в режиме Doz: https://developer.android.com/training/monitoring-device-state/doze-standby.html –

+0

Спасибо, не видели, все же. Получил обновление для Android 6 всего пару дней назад – decades

+2

«Для узкого набора вариантов использования этого может быть недостаточно. В таких случаях система предоставляет настраиваемый белый список приложений, частично освобожденных от оптимизации Doze и App Standby. Приложение, которое является белым, может использовать сеть и удерживать частичные блокировки во время Doze и App Standby. «Это определенно не так. Я положил свое приложение в белый список для теста. Однако доступ к сети запрещен. – decades

ответ

0

я столкнулся именно этот вопрос с приложением, которое требует акселерометр, гироскоп, магнитометр и работать в фоновом режиме и, когда экран выключен. Android 6.0 Doze запрещает приложению использовать датчики в режиме реального времени, когда экран выключен. Добавление приложения в белый список оптимизации батареи не устранило проблему для приложения. Создание PARTIAL_WAKE_LOCK действительно устранило проблему с датчиками.

+0

Вправо, PARTIAL_WAKE_LOCK помогает.Но у меня уже был этот замок. Это опыт, который я сделал до сих пор: 1) Вы не получите никакой тревоги, чтобы просыпать устройство, чтобы что-то делать, если устройство находится в режиме «Дозировка». Он проснется во время следующего так называемого периода «Поддержки». 2) Даже если вам удастся получить сообщение GCM (которое хорошо работает с сообщениями с высоким приоритетом, даже в режиме «Доза»), вам определенно не удастся получить новое wifi-сканирование, потому что стек просто повторяет последнее просмотренное сканирование. Я не могу комментировать датчики. Белый список не помогает вообще, IMHO – decades

+0

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

0

До моего понимания Doze Restrictions:

  • Стандартные AlarmManager сигналы [...] откладываются до следующего окна обслуживания.
  • Система не выполняет сканирование Wi-Fi.

Я боюсь белый список ваше приложение не будет достаточно, чтобы заставить его работать снова. Как вы упомянули в своих комментариях, exemption is only partial.

+0

Да, точка 1 подтверждена. И вы можете выполнять Wifi-сканирование, если вы используете сообщение GCM high prio, чтобы инициировать подобные действия. – decades