Я пишу простое приложение для отслеживания на расстоянии в Unity (потому что я гораздо, гораздо лучше знаком с ним, чем обычные Android среды разработки, и приложение предназначено для личного использования), и моя проблема в том, что когда телефон заблокирован или (предположительно) приложение закрыто, данные не собираются.
Приложение работает так, что оно запрашивает местоположение каждые несколько метров, используя Интерфейс службы определения местоположения Unity , и добавляет его к общему расстоянию после завершения пробега.
Приложение предназначено для запуска на Android 9, и оно должно точно измерять расстояние в течение не менее 1-2 часов. Поэтому мне нужно, чтобы батарея работала как минимум так долго, особенно когда рядом с ней работают службы Bluetooth, такие как musi c или синхронизация сердечного ритма с часов.
Мой опыт работы с Android развитие очень низкое; почти не существует Я понимаю, что мне нужен какой-то фоновый процесс, но я не уверен, какой и какой из них лучше всего работает со встроенным в Unity API Service Location или Unity в целом.
Мои исследования пока говорят об этом процессе. на самом деле это должен быть приоритетный процесс, поскольку в более новых версиях Android фоновые службы ограничиваются запросом местоположения только один раз в несколько часов. Дальнейшие исследования говорят, что я должен работать с Work Manager , хотя я все еще не уверен, правильно ли это. Является ли измерение местоположения каждую секунду или около того отложенным ?
Возможно, вместо этого мне следует использовать IntentService ? Я в замешательстве.
Какую службу следует использовать для этой цели?