从长时间暂停模式恢复应用程序时GPS信号丢失 和/或 用户进入GPS较弱的建筑物后然后恢复应用程序。
蓝点消失,地图以纬度为中心:0长:0(在某处 尼日利亚 - 非洲附近的海洋) 如果您在该时间点启动另一个GPS应用程序,例如Apple Maps, 你会看到蓝点,即使不那么准确。
用户可以修复它的唯一方法是完全删除我的应用并重新启动它。
它发生在iOS 5.x和iOS 6.x上。
在详细说明之前,我真的想问:
有没有人遇到这个问题?
它非常讨厌,但我找不到任何人抱怨这个
在网络上的任何地方 - 非常奇怪。
我正在使用普通的CLLocation和showUserLocation = YES,
没有什么神奇的,没有特殊的精确度调整或其他,只是简单的默认
实施
我已经尝试在恢复应用时重新启动每个可能的组件;
showUserLocation=NO;
showUserLocation=YES;
或
[locationManager stopUpdatingLocation];
[locationManager startUpdatingLocation];
或 甚至释放locationManager并再次初始化也无济于事! (也尝试使用dispatch_after延迟重启)
是否有任何编程方式强制重置GPS信号或在ios中的CLLocation?
将欣赏任何相关的讨论!
答案 0 :(得分:1)
我认为您默认位置设置为“无”,因此会创建此类问题。
Go to
Edite Scheme..
|
|
"Run YourProjectName" / Left Hand Side
|
|
Select "Option" Tab
|
|
Default Location
|
|
Choose any Location such like , "London England"
答案 1 :(得分:0)
当你说你试图停止/启动CLLocationManager
对象时,你是说你在委托中得到的回调给你一个0,0坐标,或者你是否试图访问直接使用location
中的CLLocationManager
属性的位置?
我在基于位置的应用上工作,我可以告诉你的一件事是你不能指望直接获取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
(如果未调用回叫,则您还没有有效的位置,因此设置{{1}在那一点上什么都不做。)
如果您有任何其他问题,我希望这有帮助并随时告诉我们!