mapkit - 如何判断 CLLocationManager 是否正在监视重大位置更改

标签 mapkit core-location cllocationmanager

我正在更新一个应用程序,该应用程序使用 CLLocationManager 监视用户位置的重大更改。我允许用户打开或关闭此选项,并适当设置 startMonitoringSignificantLocationChanges 和 stopMonitoringSignificantLocationChanges。

问题是当用户重新打开应用程序时,我需要知道应用程序当前是否正在监视重要位置,以便相应地设置此切换的当前状态。

我可以在 CLLocationManager 或其他地方检查某些内容,以告诉我监控当前是打开还是关闭。

最佳答案

在 iOS 8 中,您可以检查从用户那里获得的当前权限。如果用户向您授予始终权限,则意味着他们允许进行重大位置更改。如果他们只允许 WhenInUse,则不允许进行重大位置更改。请参阅this post了解有关这两个位置权限的详细信息。

在 iOS 8 之前,我认为没有办法可以说明这一点。用户可以允许您使用他们的位置,也可以不允许您使用他们的位置。因此,您需要自己跟踪位置管理器的当前状态(即,NSUserDefaults 中有一个 BOOL,当您调用 startMonitoringSignificantLocationChanges,并在调用 stopMonitoringSignificantLocationChanges 时将其设置为 NO)。

关于mapkit - 如何判断 CLLocationManager 是否正在监视重大位置更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28573003/

相关文章:

ios - CLLocationManager 的区域监控 vs 重大位置变化

ios - 如何在用户平移和移动 map 时将 MKAnnotation View Image 固定在 map 的中心(Swift)?

ios - 在 iOS map 中显示多个注释

ios - 我可以根据 map View 上已有的路线获取大概的行程时间吗?

ios - iPhone GPS 用户位置在手机静止时来回移动

ios - 如何将值从一个函数传递到另一个函数?

ios - 使用 MapKit 的地形和卫星 View

ios - 我怎样才能让罗盘针头朝南?

ios - xamarin 形成使用位置 iOS 的权限

ios - 位置权限确定器