0

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

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

[self.locationManager startUpdatingLocation];

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

这个东西怎么实现?

4

2 回答 2

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"]];
}
于 2012-05-14T16:52:11.327 回答
0

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

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


}
于 2012-05-14T15:15:12.133 回答