【问题标题】:iOS Location Services visits and system Frequent LocationiOS定位服务访问和系统常用位置
【发布时间】:2017-04-23 14:12:14
【问题描述】:

我注意到 iPhone 上的常用位置似乎比监控 iOS 访问的应用程序消耗的电量要少得多 (https://developer.apple.com/reference/corelocation/clvisit)。

可以在手机上通过设置 -> 隐私 -> 位置服务 -> 系统服务 -> 常用位置查看 iPhone 上的常用位置。

我想知道来自 CLLocationManager 的访问监控服务是否与 iOS 频繁位置相同,还是在 Apple 使用的不同系统上。如果 Apple 使用相同的服务,为什么它对电池没有任何影响?

【问题讨论】:

    标签: ios iphone geolocation location core-location


    【解决方案1】:

    这两个 API 用于不同的目的。

    CLLocationManager API

    此 API 旨在根据您的应用指示的要求向您的应用通知位置信息。当您的应用接收位置数据时,您可以选择一些特定条件,并且您的应用将继续接收该数据,直到不再需要它为止。例如,Uber 应用程序会在打开应用程序时请求位置数据,以便您安排行程,并会在您的行程接近时继续请求。

    Frequent Locations / CLVisit API

    相比之下,Frequent Locations 的不同之处在于它不会始终如一地向您的应用报告位置数据。相反,应用程序可以指示他们想知道用户是否访问了特定位置,如果用户访问了,那么 iOS 将通知应用程序。位置往往有些粗糙。这将用于星巴克应用程序的示例,当您到达星巴克附近时,该应用程序可能会告诉您附近的限时特卖店,以鼓励您停下来。对于其中许多应用程序,用户通常会选择他们将标记为“最喜欢”的位置/商店的预定义位置列表,应用程序将使用该数据通知用户。

    电池寿命

    由于这两种 API 的操作方式不同,电池使用量的差异变得很明显。使用 CLLocationManager,我们开始并持续向应用报告准确/粗略的位置。除了蜂窝三角测量和 wifi 热点位置数据外,这里通常使用 GPS。

    但使用 CLVisit,我们通常只会在首次访问(或离开)所需位置时通知应用一次。因此,如果当前位置没有粗略地接近或远离我们感兴趣的报告位置,iOS 不需要唤醒应用程序并进行任何额外的处理。该设备可以使用蜂窝三角测量和 wifi 热点位置数据获得大致位置。这种级别的位置详细信息通常不需要 GPS。由于您的蜂窝无线电和 wifi 通常“始​​终开启”,因此使用这两种方法进行位置检测不会消耗任何额外电量。

    但它如何使用蜂窝网络和 wifi 来确定我在哪里?

    解释您的设备如何从蜂窝或 wifi 信号中获取位置超出了此问题的范围。但是这里有一篇很好的文章,解释了一些关于这些信息是如何获得的。 How does Google know where I am? - security.stackexchange.com

    【讨论】:

    • 感谢您的解释,但我的问题是关于常用位置和 CVisit API 之间的区别。据我了解,CLVisit 是 CLLocationManager 的一部分(使用委托启动访​​问监控并从 didVisit 回调),但在开发人员 API 文档中没有提及频繁位置。在搜索了更多信息后,我发现了这个 [来自 Apple 的新闻信息](goo.gl/jMZlW0) 谈论设备如何跟踪用户的常用位置。似乎他们正在使用 wifi 热点的众包数据库而不是 iOS API 来跟踪用户的频繁位置。
    • 您正在寻找的详细信息在我的回答中“但是使用 CLVisit,我们通常只会在首次访问(或离开)所需位置时通知应用程序一次。由于这个 iOS 不如果当前位置没有粗略地接近或远离我们感兴趣的报告位置,则无需唤醒应用程序并进行任何额外的处理。”
    • 换句话说,频繁位置通过不唤醒任何特定应用程序(不包括记录此数据的频繁位置应用程序)来节省电量,就像 CLVIsit 所做的那样。这就是Frequent Location 没有CLVIsit 使用那么多功能的原因。它们都使用我提到的相同的底层位置检测技术,其中特别包括 wifi 热点位置数据 (BSSID)。
    • 另外值得一提的是iOS记录默认访问的频繁位置。因此,Frequent Locations 的运行频率比 CLVIsit 的运行频率要高得多。参考:time.com/money/4110183/…
    猜你喜欢
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    相关资源
    最近更新 更多