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

检查是否启用了定位服务

梅修贤
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 问题答案: 只需从函数中返回现有支票即可。

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

  • 我正在写一个应用程序,可以在Twitter上发布推文。我想提供在tweet中包含位置的选项,可以通过POST状态/使用lat和long参数进行更新。 我的问题是:如果twitter帐户没有通过https://twitter.com/settings/account“在我的推文中添加位置”,然后我可以发送带有位置信息的推文,但位置信息不会出现。这对用户的安全来说是一件好事,但对我来说是一个烦恼,因为