2017-01-05 2 views
3

У меня есть приложение, которое обновляет местоположение веб-службы каждые 10 секунд. Однако на устройствах с уровнем API 23 или выше, когда режим доз начинается через 15 минут после простоя, сетевое соединение теряется, и приложение становится неспособным отправлять дополнительные обновления местоположения на мою веб-службу.Избежать режима доз без белого списка приложения

За исключением белого использования приложения, попросив разрешения пользователя игнорировать оптимизацию батареи, которая позволяет обновлять местоположение только каждые 15 минут, какие у меня другие параметры, чтобы получать обновления GPS-местоположения и иметь возможность отправлять их на мою веб-страницу оказание услуг?

ответ

0

Вы слишком часто работаете слишком часто. Там нет телефона, который даже обновляет местоположение, что быстрая нормальная работа будет каждые 30-60 секунд. Таким образом, от 2/3 до 5/6 ваших обновлений бессмысленно. Игнорируя это, если вы находитесь в машине, идущей на 60 миль в час, вы не собираетесь менять более чем на 14 футов за 10 секунд. На сервере нет абсолютно ничего, что должно быть точным до 14 футов - типичный GPS в телефоне - только до 10 метров (более 30 футов). Это одна из причин, почему GPS не обновляется чаще.

Но нет, нет. Они внедрили Doz по какой-то причине. Это экономит аккумулятор. Они настроили его так, что вы не можете обойти его, не спрашивая у пользователя, хотят ли они сжечь эту батарею. Я определенно понимаю, почему 15 минут слишком медленны, но затем вы спрашиваете пользователя и позволяете им решить, стоит ли ваше приложение.

+0

Я думаю, что точка, которую делает SO, независимо от того, составляет ли она 10 секунд или даже минуту, как они могут выполнять сетевые запросы в режиме доз? Например, если они разрабатывают навигационное приложение для драйверов. Поэтому, отправляя сообщение с высоким приоритетом GCM? – AshesToAshes

+0

@AshesToAshes Они просят быть включенными в белый список. Он пытается это сделать без этого. (Google Maps поставляется в белый цвет от OEM-производителей). Часть того, что она слишком частая, я указываю, что он перестает тратить пропускную способность сети и силу батареи, делая бессмысленные вещи. –

+0

Очень верно, но это ответ, чтобы обойти это для белого списка приложения, которое является обязательным + GCM-сообщениями? – AshesToAshes

1

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

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

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

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

Официальная документация Doed позволяет использовать белый список для вашего прецедента. Проверьте это here.

+0

мы можем получить ссылку на эту ссылку, пожалуйста? – AshesToAshes

+1

https://developer.android.com/training/monitoring-device-state/doze-standby.html –

Смежные вопросы