Нужен способ постоянного отслеживания текущего местоположения пользователя в формах Xamarin на Android и iOS - PullRequest
0 голосов
/ 03 февраля 2019

Я работаю над старшим проектом для школы, который требует, чтобы я постоянно отслеживал пользователей по их телефонам GPS координаты.Моя конечная цель - постоянно обновлять мою карту Mapsui с указанием местоположения текущего пользователя.Я нахожу контрольно-пропускной пункт о том, как постоянно обновлять данные до Mapsui.Если я введу статические GPS координаты, точка будет правильно отображаться на моей карте.

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

Буду признателен за любые идеи и советы!

1 Ответ

0 голосов
/ 03 февраля 2019

Кажется, вы хотите отслеживать местоположение пользователя в фоновом режиме.Если вы прочитали документы о Xamarin.Essentials: геолокация. Есть еще кое-что, что вы должны сделать.

в проекте iOS

1. Добавить конфиденциальность в info.plist

<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access location when open.</string>
<key>NSLocationAlwaysAndWhenInUsageDescription</key>
<string>This app needs access location when open or in background.</string>
// support iOS 10 and before
<key>NSLocationAlwaysUsageDescription</key>
<string>This app needs access location when open.</string>

2 . Для задач, требующих больше времени для выполнения, необходимо запросить определенные разрешения для их запуска вфон без их приостановки.

Поддержка некоторых типов фонового выполнения должна быть заранее объявлена ​​приложением, которое их использует.Вы объявляете фоновые режимы, которые поддерживает ваше приложение, на вкладке «Возможности» настроек вашего проекта в VS.Включение опции «Фоновые режимы» добавляет ключ UIBackgroundModes в файл Info.plist вашего приложения.

enter image description here

Для получения дополнительной информации о фоновом выполнении в iOS вы можете обратиться к этому документы

в проекте Android

Вы можете создать background service.

Класс IntentService обеспечивает прямолинейный доступструктура для запуска операции в одном фоновом потоке.Это позволяет ему обрабатывать длительные операции, не влияя на скорость отклика вашего пользовательского интерфейса.Кроме того, на IntentService не влияют большинство событий жизненного цикла пользовательского интерфейса, поэтому он продолжает работать при обстоятельствах, которые приводят к отключению AsyncTask.

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

...