Как отключить приемник Android GPS при использовании макета местоположения - PullRequest
0 голосов
/ 02 ноября 2018

При разработке приложения Xamarin.Android, которое зависит от службы определения местоположения GPS, я использую отдельное пользовательское приложение для проверки движения по заранее определенному маршруту.

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

[0:] Position: 37.8623530305552, 27.2595232774193 [Mock]
[0:] Position: 37.8623389227154, 27.2594691972361 [Mock]
[0:] Position: 37.8955245, 27.2769657 
[0:] Position: 37.8623248148509, 27.2594151170736 [Mock]
[0:] Position: 37.8623107069617, 27.2593610369318 [Mock]

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

Я предполагал, что вызов LocationManager.AddTestProvider временно отключит реальную службу GPS, но это не так.

Я что-то делаю явно неправильно?

1 Ответ

0 голосов
/ 07 ноября 2018

Для тех, кто сталкивается с этой проблемой, решение довольно простое.

Несмотря на то, что моя импровизированная реализация корректно генерировала фиктивные исправления местоположения GPS, имитационные данные иногда противоречили реальным исправлениям местоположения, сгенерированным устройством.

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

Быстрое решение состоит в том, чтобы переключить режим местоположения устройства на Только для устройства (Настройки Android> Местоположение> Режим). Это гарантирует, что устройство будет использовать только GPS в качестве источника данных о местоположении.

В качестве альтернативы, реализация макета может быть расширена, чтобы также добавить фиктивный сетевой провайдер местоположения, который затем подавляет данные о местоположении устройства на основе Wi-Fi или сотовых ссылок.

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