我正在尝试在 BackgroundWorker 中获取 GPS 位置。我读到,数据是从缓存中获取的,这些缓存每 15 分钟更新一次。是否可以重新安排缓存的更新间隔?现在我正在使用模拟器,并且我总是在事件 StatusChanged 中获得 NoData。
好的,你能解释一下,它是如何在模拟器中工作的吗?这是我的代码:
private GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
private void StartGeoWatcher()
{
watcher.StatusChanged += GeoWatcherStatusChanged;
watcher.PositionChanged += GeoWatcherPositionChanged;
watcher.Start();
}
void GeoWatcherPositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
}
void GeoWatcherStatusChanged(object sender, GeoPositionStatusChangedEventArgs e)
{
switch (e.Status)
{
case GeoPositionStatus.Initializing:
break;
case GeoPositionStatus.Ready:
break;
case GeoPositionStatus.NoData:
break;
case GeoPositionStatus.Disabled:
break;
}
}
我在我的应用程序中启动模拟器。之后,我在附加工具中选择了一些位置。选择位置后,单击应用程序中的按钮,周期性任务将运行。首先: StatusChanged 被调用,状态为“正在初始化”。第二:以状态“NoData”调用 StatusChanged。我不知道为什么,因为我在其他工具中选择了位置。