Гарантия того, что Android продолжает получать данные датчика - PullRequest
0 голосов
/ 24 января 2019

Я разрабатываю приложение, которое отслеживает поездки. После поисков по этому вопросу я пришел к выводу, что лучший способ добиться этого (постоянно отслеживать местоположение пользователя) - это использовать сервис переднего плана. В некоторых случаях работает довольно хорошо, но в некоторых других случаях (даже при отключенной DOZE) у меня появляются некоторые интервалы времени, в течение которых телефон полностью неподвижен, и я прекращаю получать данные датчиков (либо акселерометр, либо данные о местоположении от поставщика слияния).

Эта проблема усугубилась, когда я попробовал ее на устройстве Android 9 (я полагаю) из-за введенных им новых ограничений (нет данных датчика, когда телефон находится в режиме ожидания и т. Д.). Чтобы решить эту проблему или хотя бы попытаться уменьшить ее влияние, я подумал о реализации функции wakelock / job / alarm только для того, чтобы срабатывать с частотой 1 минута и ничего не делать. Это может быть действительно плохой идеей, но я долго боролся с этим, я не знаю, что делать дальше.

Большое спасибо заранее!

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Из вашего сообщения

Я получаю некоторые интервалы времени, в течение которых телефон полностью неподвижен, и я прекращаю получать данные датчиков (либо акселерометр, либо данные о местоположении от поставщика слияния).

Если телефон работает, почему вы хотите получить данные о местоположении или датчике в целях отслеживания?

0 голосов
/ 24 января 2019

Используйте WakeLock. Это его целевое назначение.

EDIT

Чтобы уточнить: ваше устройство, скорее всего, прекращает сбор данных, потому что оно собирается спать. В некоторых случаях это может быть связано с Doze, но вы упомянули, что используете службу переднего плана. Согласно комментарию Дайан Хэкборн в этой записи , приложения с запущенными службами переднего плана не ограничиваются Doze. И, согласно документам , WakeLocks являются подходящим способом поддержания устройства в рабочем состоянии.

...