当前位置: 首页 > 面试题库 >

检查是否启用了定位服务

梅修贤
2023-03-14
问题内容

我一直在做一些关于CoreLocation的研究。最近,我遇到了一个问题,该问题已在其他地方解决,但在Objective C和iOS 8中已涵盖。

我觉得这有点愚蠢,但是如何在iOS 9上检查是否使用swift启用了定位服务?

在iOS 7(甚至可能是8?)上,您可以使用locationServicesEnabled(),但是在为iOS 9编译时似乎无法正常工作。

那我该怎么做呢?

谢谢!


问题答案:

将添加CLLocationManagerDelegate到您的类继承中,然后可以进行以下检查:

Swift 1.x-2.x版本:

if CLLocationManager.locationServicesEnabled() {
    switch CLLocationManager.authorizationStatus() {
    case .NotDetermined, .Restricted, .Denied:
        print("No access")
    case .AuthorizedAlways, .AuthorizedWhenInUse:
        print("Access")
    }
} else {
    print("Location services are not enabled")
}

Swift 4.x版本:

if CLLocationManager.locationServicesEnabled() {
     switch CLLocationManager.authorizationStatus() {
        case .notDetermined, .restricted, .denied:
            print("No access")
        case .authorizedAlways, .authorizedWhenInUse:
            print("Access")
        }
    } else {
        print("Location services are not enabled")
}

Swift 5.1版本

if CLLocationManager.locationServicesEnabled() {
    switch CLLocationManager.authorizationStatus() {
        case .notDetermined, .restricted, .denied:
            print("No access")
        case .authorizedAlways, .authorizedWhenInUse:
            print("Access")
        @unknown default:
        break
    }
    } else {
        print("Location services are not enabled")
}


 类似资料:
  • 根据Android文档: 谷歌定位服务API是谷歌Play服务的一部分,它提供了一个更强大、更高级的框架,可以自动处理定位提供者、用户移动和定位精度,而不是。 但是使用融合的位置提供者(来自Google Play services中的位置API),我不知道如何检查用户是否启用或禁用了位置。 使用旧的很简单: 但我不想同时使用Google Play服务融合的位置提供商和旧的android位置。 如何

  • 问题内容: 我正在一个需要JavaScript和会话的页面上工作。我已经有代码来警告用户是否禁用了javascript。现在,我想处理禁用cookie的情况,因为会话ID存储在cookie中。 我只想到了几个主意: 将会话ID嵌入链接和表单中 警告用户如果禁用了cookie,则必须启用cookie(需要帮助来检测cookie是否被禁用) 解决此问题的最佳方法是什么?谢谢 编辑 根据链接的文章,我想

  • 问题内容: 有没有办法检查PHP是否启用了JavaScript?如果是这样,怎么办? 问题答案: 不可以,这是不可能的,因为PHP是一种服务器端语言,它不会以任何方式或形式(客户端从PHP服务器请求)访问客户端的浏览器。 客户端可以通过HTTP标头提供一些元信息,但是它们不一定告诉您用户是否启用了JavaScript,并且您无论如何也不能依赖它们,

  • 问题内容: 我正在使用以下代码 这可以启用或禁用它 但我想作为函数说函数名是 那么我可以按照我的网站代码中的任意位置来称呼它 与我先前的问题几乎相同,请检查是否启用了allow_url_fopen 问题答案: 只需从函数中返回现有支票即可。

  • 我有以下型号: 在另一个图书馆服务的方法: 只有在启用延迟加载时,它才能正常工作: 如果未启用延迟加载,则不填充用户属性。我想抛出一个异常,如果有人试图使用我的服务没有启用延迟加载。怎么做呢?我试图检查属性

  • 问题内容: 我在想,如果有可能,以检查是否被启用 的Apache 和 IIS 在 。 *存在用于IIS的 *ModRewrite 。检查一下。 因此,我正在寻找一个在 Apache 和 IIS 上进行检查的PHP脚本 。 有谁知道这样的脚本或可以写一个? 特别是对于Microsoft IIS 。 谢谢! 问题答案: 如果您使用的是mod_php,则可以使用。这将返回所有已启用模块的数组,因此要检查