想通过xcode开启定位服务

Posted

技术标签:

【中文标题】想通过xcode开启定位服务【英文标题】:Want to enable location services through xcode 【发布时间】:2016-01-23 08:09:49 【问题描述】:

我是 ios 新手,我想知道当我在下面使用它时如何通过编程启用位置服务....

当我使用这个标签来显示位置服务被禁用时和一个启用按钮(绿色)来启用位置服务。但是如何以编程方式进行。我将如何了解位置服务被禁用以及按钮将如何启用此功能。请帮帮我。

【问题讨论】:

提问前请阅读规则 Zoho,你能把链接给我吗 【参考方案1】:

您可以使用 CLLocationManager 的 locationServicesEnabled 属性来检查系统范围/整体的可用性。使用您的 CLLocationManagerDelegate 的 locationManager: didFailWithError: 方法并检查 kCLErrorDenied 错误以查看用户是否拒绝了位置服务。

if([CLLocationManager locationServicesEnabled])

           NSLog(@"Location Services Enabled");

           if([CLLocationManager authorizationStatus]==kCLAuthorizationStatusDenied)
                 [[[UIAlertView alloc] initWithTitle:@"App Permission Denied" 
                                                        message:@"To re-enable, please go to Settings and turn on Location Service for this app." 
                                                       delegate:nil 
                                              cancelButtonTitle:@"OK" 
                                              otherButtonTitles:nil]show];

            
        

选择 2

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error


    NSLog(@"%@",error);

如果您的应用禁用了定位服务,那么它会给您错误

Error Domain=kCLErrorDomain Code=1 "操作无法完成。(kCLErrorDomain error 1.)"

更新

如果用户拒绝了权限,我们无法以编程方式启用,用户可以手动启用位置服务,更多reference

【讨论】:

我也可以使用 if (kCLAuthorizationStatusRestricted) UIAlertView;这也是家长控制的吧?

以上是关于想通过xcode开启定位服务的主要内容,如果未能解决你的问题,请参考以下文章

通过定位服务警报开启定位后等待定位开启

如何获取 Xcode 服务器代码覆盖率 API JSON 响应

如何在远程通过访问自己的电脑建立的服务器?

混合方式开启服务

如何通过代码开启定位服务

内部服务器错误 Xcode 持续集成