有谁知道即使位置服务已打开,什么可能导致 locationManager 无法收敛到某个值?
编辑 1 - locationManager 对某些用户工作正常,但对于其他用户,他们的位置永远不会更新。并且用户的设备(其位置永远不会更新)具有 GPS,因为这些设备是 iPhone 5、iPad3、iPhone 4 等。我想知道它们是否在该国太远并且总是在室内。所以 GPS、WiFi、手机信号塔无法到达它们?但不知何故他们上网......
编辑 2 - 更多说明:用户可以访问互联网,因为他们能够在我的网络服务器上创建一个新帐户。当 locationManager 收敛到一个值时,使用下面的#2,然后我的 web 服务器上的 gps 位置会更新,但这永远不会发生。用户在设备上使用应用程序的时间足以回答 10 个问题并上传他们的照片。如果用户可以访问互联网,那么 locationManager 是否没有足够的时间收敛?
编辑 3 - 发生了另一件奇怪的事情:在网站上创建用户帐户时,用户的 gps_lat 设置为 0。当用户使用 iPhone 上的 locationManager 在网站上更新他的 gps_lat 时,gps_lat 的更新值为 (null )。什么可能导致 locationManager 产生 output = (null)?
- 我使用以下代码检查位置服务是否已打开:
BOOL locationServicesDenied = ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied);
- 然后,当 locationManager 与此代码融合时,我会更新用户在网站上的位置:
-(void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
if((newLocation.horizontalAccuracy > 0.0f) && (newLocation.horizontalAccuracy < 7000.0f){
[self update_website:self];
}
但update_website
永远不会被调用。这让我觉得newLocation.horizontalAccuracy
永远不会低于7000。
有谁知道为什么locationManager
即使位置服务打开也无法收敛?