Как определить, находится ли пользователь в движении - PullRequest
1 голос
/ 12 августа 2011

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

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

Какие варианты я могу использовать для этого? Реалистичные варианты, которые не будут разряжать батарею, будут великолепны! Спасибо за помощь.

Ответы [ 3 ]

2 голосов
/ 12 августа 2011

Один из способов минимизировать необходимость постоянного прослушивания обновлений местоположения (GPS) - включить или отключить обновления местоположения на основе обратной связи, получаемой от акселерометра.Например, когда вы нарушаете установленный порог движения с помощью акселерометра, вы можете начать прослушивать обновления местоположения и проверить, достаточно ли быстро движется устройство.Если нет, вы можете отключить обновления местоположения.

Здесь есть оптимизация, например, «если порог акселерометра был сломан менее 30 секунд назад, игнорируйте», чтобы вы не потерпели поражение при включении обновления местоположенияи.

Вот пример разработчика Использование акселерометра .

1 голос
/ 12 августа 2011

Одной идеей без GPS было бы создание чего-то вроде счетчика шагов:

Затем вам нужно будет знать его «длину шага» и подсчитать, сколько шагов он делает за одну минуту.Затем вы умножаете количество шагов на длину одного шага и получаете meters/minute

1 meter / minute = 0.0372822715 mph

Это также будет работать с использованием метров в секунду:

1 meter / second = 2.23693629 mph

Конечно, это работает, только если пользователь на самом деле работает / едет / катается на своем велосипеде, и это не очень точно.Если вы хотите проверить скорость его передвижения на машине или лодке, это не сработает.

0 голосов
/ 12 августа 2011

Один из способов сделать это - Инерциальная навигация , но сомнительно, что встроенные датчики достаточно точны для измерения чего-либо существенного.

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

Я думаю, что GPS является наиболее жизнеспособным вариантом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...