Я работаю над приложением, которое отслеживает местонахождение пользователя. Чтобы сэкономить аккумулятор, я хочу реализовать незанятую зону, которая делает диспетчер местоположений менее часто (или даже останавливается) в местоположении GPS. После того, как пользователь снова начнет перемещаться (обнаруживается с помощью акселерометра и/или значительного перемещения), служба определения местоположения потянет интервал по умолчанию.Сохранение энергии с помощью служб определения местоположения путем обнаружения движения пользователя с помощью датчиков
Один подход заключается в определении свободной зоны в качестве параметра minDistance
в LocationManager::requestLocationUpdates
, но другие пользователи здесь suggests that it does not have any impact on the battery drain, и documentation государства, что трудно для менеджера места для экономии заряда батареи, используя этот критерий:
Однако провайдерам местоположения более сложно сохранять мощность с использованием параметра minDistance, поэтому minTime должен быть основным инструментом для экономии времени автономной работы.
Google также предлагает использовать significant motion sensor для обнаружения при изменении местоположения пользователя:
На высоком уровне, значительный детектор движения используется для уменьшения потребляемой мощности определения местоположения. Когда алгоритмы локализации обнаруживают, что устройство является статическим, они могут переключиться на режим низкого , где они полагаются на значительное движение, чтобы разбудить устройство , когда пользователь меняет местоположение.
Означает ли это, что диспетчер местоположений использует значительный датчик движения, если он присутствует по умолчанию, или мне нужно активировать или внедрить что-то, чтобы использовать сервис определения местоположения?
А как насчет акселерометров? Большая часть моего вопроса заключается в том, будет ли использование акселерометра обнаружением, когда пользователь начнет движение, сэкономит все силы, поскольку использование акселерометра будет другим датчиком, который потребует обработки мощности и обратного вызова. Некоторые датчики акселерометра are listed as low-powered от Google, в то время как некоторые из них (включая значительный датчик движения).
Можно ли сэкономить энергию аккумулятора, поставив GPS в режим сна, а затем использовать датчики для обнаружения движения пользователя, которое снова пробудит GPS?
Эй Мартин, вы найдете любое решение, чтобы решить энергосберегающие с обновлением местоположения ... –
Nope. Я не работал над этим после исследования, которое я сделал для этого сообщения. Я отправил несколько писем некоторым людям, но, похоже, сейчас все в отпуске. Я опубликую ответ, когда/если я приду к выводу. Спасибо за продолжение! – Martin
Я, кажется, все в отпуске по этой теме;);) –