当应用程序从长时间暂停模式恢复时,GPS信号会丢失。
和/或之后,用户进入GPS薄弱的建筑,,然后恢复应用程序。
蓝点消失了,地图的中心位置是lat:0长:0(它位于尼日利亚-非洲附近的海洋中)如果你在那个时候推出另一个GPS应用程序,比如Apple Maps,你会看到蓝点,即使不是那么精确。
用户唯一可以修复的方法是完全杀死我的应用程序,然后重新启动它。
这种情况发生在iOS 5.x和iOS 6.x上。
在详细讨论之前,我真的想问一问:
有人遇到这个问题吗??
这很烦人,但是,我在网上任何地方都找不到有人抱怨这件事--非常奇怪。
我用的是普通CLLocation和showUserLocation=YES,
没有什么神奇的,没有特别的精确调优或其他,只是简单的默认实现。
当App被恢复时,我已经尝试过重新启动每一个可能的组件;
showUserLocation=NO;
showUserLocation=YES;或
[locationManager stopUpdatingLocation];
[locationManager startUpdatingLocation];甚至发布locationManager并再次初始化它也没有帮助!
(还尝试使用dispatch_after延迟重新启动它)
是否有任何编程方法强制重置全球定位系统信号或CLLocation在ios?
如有任何相关讨论,将不胜感激!
发布于 2013-03-23 12:28:37
我认为默认位置设置为"None",因此创建了这种类型的问题。
Go to
Edite Scheme..
|
|
"Run YourProjectName" / Left Hand Side
|
|
Select "Option" Tab
|
|
Default Location
|
|
Choose any Location such like , "London England"发布于 2013-03-23 18:50:46
当您说您已经尝试停止/启动CLLocationManager对象时,您是说您在委托中得到的回调提供了一个0,0坐标,还是您试图使用CLLocationManager中的location属性直接访问该位置?
我在一个基于位置的应用程序上工作,有一件事我可以告诉你,你不能计算直接得到一个CLLocationManager对象的位置。获取位置信息的唯一可靠方法是通过实现CLLocationManager类的回调
-(void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation我在我的应用程序中处理CLLocationManager的方式(现在我并不是说这对于您的用例来说是最佳的或理想的,但它确实允许我们在应用启动/恢复时为用户提供一个基于位置的可靠体验)。
CLLocationManager封装到位置管理类中(通常使用单例)--我认为这可以是CLLocationManager的子类,但在我的示例中,它只是NSObject的子类,其中有一个CLLocationManager对象作为属性NSUserDefaults中存储用户位置,但我们已经在应用程序中这样做了,并且似乎不影响审批过程)CLLocationManager是否返回0,0,如果是,则返回缓存的位置。CLLocationManager的委托,您需要有一种方法将这些信息传递给您的视图控制器)。有了上面的内容,在我的地图页面(或者在我显示用户位置的地方)上,我基本上用缓存的位置更新了一次(在viewDidLoad中),然后允许通过委托回调对地图进行一次更新。一旦收到回呼,我就将showsUserLocation设置为YES (如果没有调用回调,那么您还没有一个有效的位置,因此此时设置showsUserLocation不会做任何事情)。
我希望这会有所帮助,如果您还有任何问题,请随时通知我!
https://stackoverflow.com/questions/15586681
复制相似问题