【发布时间】:2010-10-20 01:49:01
【问题描述】:
是否有任何方法可以确定特定应用的位置服务是否已被禁用?问题是 [CLLocationManager locationServicesEnabled] 会返回 YES,即使已为特定应用禁用了位置服务...
【问题讨论】:
是否有任何方法可以确定特定应用的位置服务是否已被禁用?问题是 [CLLocationManager locationServicesEnabled] 会返回 YES,即使已为特定应用禁用了位置服务...
【问题讨论】:
如果您的目标是 iOS 4.2 及更高版本,只需使用 [CLLocationManager authorizationStatus]
它将返回以下CLAuthorizationStatus 值之一,这些值基本上只是整数:
typedef enum {
kCLAuthorizationStatusNotDetermined = 0,
kCLAuthorizationStatusRestricted,
kCLAuthorizationStatusDenied,
kCLAuthorizationStatusAuthorized
} CLAuthorizationStatus;
在文档中搜索“CLLocationManager”以获取更多信息。
【讨论】:
当您实现位置管理器的委托时,您应该实现 didFailWithError。如果用户不允许访问位置,您将在那里收到相应的错误
Apple Documentation States:
如果用户拒绝您的应用程序使用定位服务,此方法将报告kCLErrorDenied 错误。收到此类错误后,您应该停止定位服务。
【讨论】: