iPhone GPS - 未收到有效的位置更新

时间:2012-04-23 11:50:02

标签: iphone objective-c ios core-location

我一直在研究车辆跟踪应用程序,它依赖于核心位置服务。应用程序处于测试阶段,上周五它突然停止工作,根本没有位置更新(好像GPS不工作),即使我在我的车上并以30mph或更高的速度移动。整整一天,app根本不起作用。

我检查了我的日志,一直没有一个位置更新。然而,当时地图应用程序工作得很好,这使我相信iOS / GPS模块/信号没有问题。在星期六早上(第二天),相同的应用程序再次开始工作,无需更改代码或设置或重新安装。

我已经在这个应用程序工作了两个月,这是我第三次遇到这个问题,我无法跟踪根本原因,因为没有任何类型的更改,相同的构建开始再次工作。我在两个设备iPhone 3gs(ios 4.3)和iPhone 4(ios 5.1)上遇到了这个问题。

那么,是否有其他人遇到过类似问题,或者有什么可能是根本原因的提示或任何提示来跟踪此类问题......

... UPDATE ... 一些更新:上面的问题“我收到的不是单一更新”的陈述变成了错误,因为我收到的位置更新很少,位置精度最差,如+/- 200m(速度= -1,航向= - 1)。但在我的应用程序中,我需要至少+/- 50米的精度。我有代码丢弃位置更新,准确性很差,导致我认为根本没有更新。

感谢。

3 个答案:

答案 0 :(得分:0)

应用程序是否以某种方式失去了操作系统使用GPS硬件的许可?您是否通过选中+[CLLocationManager authorizationStatus]来检查位置服务是否已启用?我知道如果您删除并重新构建应用到设备,则必须重新批准位置访问权限。也许你有一次不小心否认了它?

答案 1 :(得分:0)

如果您正在使用“重大变更位置服务”,那么验证您未获得任何更新的位置是否有电话信号可能会很有趣。我相信该服务正在使用小区更改,而不是GPS来触发事件。

答案 2 :(得分:0)

嘿,您可以使用

设置位置准确度
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
self.locationManager.distanceFilter = 10.0f;
self.locationManager.headingFilter = 0.5;

确保您通过更新位置管理器强制更新位置

[_locationManager startUpdatingLocation];

您很可能使用didUpdateUserLocation方法获取位置更新(如果不是这种情况),那么在更新位置时使用该方法获取位置坐标。

确保您的应用无法锁定并进入空闲模式,这将停止位置更新。您可以使用以下内容停止此操作

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

希望这有助于你解决一些小问题。