MKMapView - 在AirPlane模式打开时无法找到用户位置

时间:2013-06-19 10:22:15

标签: iphone ios mkmapview mkmapviewdelegate

我正在开发MKMapView类, 在设备(iPhone5)上运行并且AirPlane模式为ON,Wi-Fi ON,

和MKMapView的属性:showsUserLocation设置为YES,MKMapView的委托

- (void)mapView:(MKMapView *)mapView didFailToLocateUserWithError:(NSError *)error

调用

,返回错误

Turn off airplane mode or use Wi-Fi to show your location on the map

告诉我转动AirPlane模式或打开Wi-Fi以获取地图上的位置。 我的飞行模式已开启,但我的Wi-Fi已启用,为什么我无法找到我的位置?

这是MKMapView或其他什么的错误吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

The apple documentation says

  

确定位置服务是否可用

     

每个基于iOS的   设备能够以某种形式支持位置服务   仍然存在位置服务可能不存在的情况   可用的:

     

用户可以在“设置”应用中停用位置服务。

     

用户   可以拒绝特定应用的位置服务。

     

设备可能在   飞行模式,无法启动必要的硬件。对于这些   原因,建议你随时拨打电话   locationServicesEnabled之前的CLLocationManager类方法   试图启动标准或重大变化的位置   服务。 (在iOS 3.x及更早版本中,检查。的值   而不是locationServicesEnabled属性。)如果是这个类方法   返回YES,您可以按计划启动位置服务。如果它返回   不,你试图启动位置服务,无论如何,系统   提示用户确认是否应该提供位置服务   重新启用。鉴于位置服务很可能被禁用   有意地,用户可能不欢迎这个提示。

不是在文档中明确说明如何做的错误

答案 1 :(得分:0)

我相信当飞机模式开启时,它会关闭所有可能的跟踪位置的方式,包括Wi-Fi。

您可以通过wi-fi连接到互联网并通过Safari访问任何网页,在启用飞行模式的情况下尝试使用您的设备。