位置管理器不会更新 iPad 中的位置,但它可以在 iPhone 中运行
Posted
技术标签:
【中文标题】位置管理器不会更新 iPad 中的位置,但它可以在 iPhone 中运行【英文标题】:Location Manager does not update the location in iPad, but it is working in iPhone 【发布时间】:2018-04-11 12:01:23 【问题描述】:较早 下面的代码在 iPad 和 iPhone 中都能正常工作。 但经过一段时间后,相同的代码在 iPad 中不起作用。问题是 iPad 总是显示相同的位置(纬度,经度),如果我不在那个位置。
-(void) getLocation
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = kCLDistanceFilterNone;
if ([CommonFunction checkForLocationService])
[locationManager startUpdatingLocation];
[locationManager requestWhenInUseAuthorization];
strLatitude = [NSString stringWithFormat:@"%f",locationManager.location.coordinate.latitude];
strLongitude = [NSString stringWithFormat:@"%f",locationManager.location.coordinate.longitude];
我已经在 info.plist 文件中添加了位置隐私密钥。
【问题讨论】:
只是猜测,请检查您是否静态添加了经纬度。在代码中...可能用于测试目的 不,我没有添加静态。 在您的 iPad 上,检查该应用是否已被授权使用 iPad 的位置信息。 是的,一切都检查过了 很抱歉回复延迟,但如果您还没有找到解决方案,您可以查看:appcoda.com/how-to-get-current-location-iphone-user 【参考方案1】:第一:
您的代码错误。切勿向位置经理询问其位置。实现委托方法并在那里接收位置更新。您只需要告诉位置经理一次开始更新位置。委托方法将被重复调用。
第二:
位置确定不是魔术。它使用设备的内部硬件。您的 iPhone 和 iPad 具有非常不同的内部硬件。
您的 iPhone 是一部手机。它可以使用手机信号塔和 GPS 来确定其位置。因此,它几乎一直都知道它在哪里。
您的 iPad 没有任何硬件。它不是手机,也没有 GPS。它必须通过建立 WiFi 连接并在在线数据库中查找路由器位置来猜测它在哪里。只有在特殊情况下才能做到这一点。其余时间,它不知道它在哪里。
【讨论】:
@Paulw11 我没有提到 iPad。我只谈到了 OP 的实际 iPad。我建议他的 iPad 没有 GPS。 永远不要向位置经理询问其位置意味着我没有得到。 @马特。我也使用了委托方法,虽然它不起作用 我只知道你显示的代码,而你显示的代码是错误的以上是关于位置管理器不会更新 iPad 中的位置,但它可以在 iPhone 中运行的主要内容,如果未能解决你的问题,请参考以下文章
如果 App 在后台时调用 startUpdatingLocation,CLLocation 管理器不会更新位置 [重复]