检查 iOS 定位服务
Posted
技术标签:
【中文标题】检查 iOS 定位服务【英文标题】:Checking for iOS Location Services 【发布时间】:2010-11-30 21:12:21 【问题描述】:我有一个带有地图和按钮的视图(就像曾经的地图应用程序),它允许用户在地图上居中并缩放他当前的位置。如果我不能使用 locationServicesEnabled 方法(总是返回 YES),我是否应该创建一个 BOOL 属性来检查是否调用了 didFailWithError 方法并知道我是否可以调用按钮方法?
感谢阅读。
已编辑:
此代码不适用于我。我正在使用模拟器。询问 locationServicesEnabled 时,我总是得到 YES。
// Gets the user present location.
- (IBAction)locateUser:(id)sender
if([CLLocationManager locationServicesEnabled])
CLLocationCoordinate2D coordinate;
coordinate.latitude = self.mapView.userLocation.location.coordinate.latitude;
coordinate.longitude = self.mapView.userLocation.location.coordinate.longitude;
[self zoomCoordinate:coordinate];
else
[[[[UIAlertView alloc] initWithTitle:@"Warning." message:@"Location services are disabled."
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease] show];
【问题讨论】:
我已经在这个帖子上发布了优化的位置权限检查,这肯定会对你有所帮助***.com/questions/15153074/… 【参考方案1】:在首选项中,您有两个选项可以禁用位置服务。第一个选项是禁用所有应用程序“[CLLocationManager locationServicesEnabled]”的位置服务的全局开关。第二个选项可让您为某些应用禁用定位服务,但不是为所有应用禁用。
要检查它是否在全局范围内被禁用以及是否对您的应用禁用,请使用以下命令:
if([CLLocationManager locationServicesEnabled] &&
[CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied)
...
【讨论】:
我有点挣扎,因为仅检查 [CLLocationManager locationServicesEnabled] 是不够的。谢谢! 谢谢,完美。很适合我。 已弃用...自 ios 4 起【参考方案2】:“locationServicesEnabled”检查用户是否在首选项中启用了定位服务。您的 MapView 可能已经检查了该值,如果位置服务不可用,则不应将任何值设置为“self.mapView.userLocation”。 This SO question might give you some more info.
【讨论】:
【参考方案3】:我也遇到了这个问题,还在寻找答案。
注意 authenticationStatus 需要 iOS4.2+ 和 + (BOOL)locationServicesEnabled 需要 iOS4.0...而对于以前的 iOS 版本,它是 - (BOOL)locationServicesEnabled...
【讨论】:
【参考方案4】:- (BOOL) enableLocationServices
if ([CLLocationManager locationServicesEnabled])
self.locationManager.distanceFilter = 10;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[self.locationManager startUpdatingLocation];
[self.mapview setUserTrackingMode:MKUserTrackingModeFollow animated:YES];
return YES;
else
return NO;
【讨论】:
以上是关于检查 iOS 定位服务的主要内容,如果未能解决你的问题,请参考以下文章
如何在 android 上检查 socket.io 连接或断开连接?