0

我正在为学校开展一个高级项目,该项目要求我通过手机GPS坐标持续跟踪用户。我的最终目标是不断Mapsui用当前用户的位置更新我的地图。我在如何不断将数据更新为Mapsui. 如果我输入静态GPS坐标,该点会正确显示在我的地图上。

确实,让我感到困惑的核心问题是异步函数以及如何在使用Xamarin.Essentials.

任何想法或提示将不胜感激!

4

1 回答 1

1

看来您想在后台跟踪用户的位置。如果您已阅读 有关 Xamarin.Essentials: Geolocation 的文档。您应该做更多的事情

在 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 中项目设置的 Capabilities 选项卡声明您的应用支持的后台模式。启用背景模式选项会将 UIBackgroundModes 键添加到应用的 Info.plist 文件中。

在此处输入图像描述

有关 iOS 中后台执行的更多详细信息,您可以参考此文档

在安卓项目中

您可以创建一个background service.

该类IntentService为在单个后台线程上运行操作提供了一个简单的结构。这允许它处理长时间运行的操作,而不会影响用户界面的响应能力。此外,anIntentService不受大多数​​用户界面生命周期事件的影响,因此它会在可能关闭AsyncTask.

有关更多详细信息,您可以参考此处

于 2019-02-03T11:03:27.667 回答