CLLocationManager - iPhone应用程序中的自定义位置管理器

时间:2012-05-14 15:01:23

标签: iphone ios location cllocationmanager

我对这项技术很陌生,所以请帮助我。

我正在使用CLLocationManager来获取当前位置,我的应用程序有自定义设置,显示他允许当前位置的状态,即在我们写入时默认出现的消息提示

[self.locationManager startUpdatingLocation];

如果用户点击不允许该消息提示并返回我的应用程序自定义设置并更改关闭按钮以获取位置,我可以获取用户的当前位置。

如何实施此事,请帮助。

提前致谢

2 个答案:

答案 0 :(得分:15)

一旦用户拒绝了您的应用的位置服务,它只能在常规设置中重新启用 - 因此请告知用户然后将其发送到那里。 (您可能希望首先使用UIAlertView通知它们。)

// If Location Services are disabled, restricted or denied.
if ((![CLLocationManager locationServicesEnabled])
    || ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusRestricted)
    || ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied))
{
    // Send the user to the location settings preferences
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"prefs:root=LOCATION_SERVICES"]];
}

答案 1 :(得分:0)

对你的问题的简短回答是“是”。当用户通过设置为您的应用启用位置服务时,就好像用户在提示时回答“是”一样。您可以通过检查代码中的授权状态来检查是否为您的应用启用了位置服务:

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized) 
{
    //Get user's current location


}