【问题标题】:Significant Location Changes in IOS8IOS8 中的重大位置变化
【发布时间】:2014-11-19 09:30:14
【问题描述】:

难道 IOS8 中的重要位置更新需要在 LocationManager 上调用“请求始终授权”?使用 SLC 时 requestWhenInUseAuthorization 似乎不够,即使应用程序仅在前台运行。即, didUpdateLocation 永远不会被调用。对我来说没有任何意义。有没有其他人遇到过这个问题?

谢谢!

【问题讨论】:

    标签: ios8 core-location


    【解决方案1】:

    您必须请求 Always 授权。这是documentedrequestWhenInUseAuthorization 下的讨论部分,上面写着:

    应用不能使用任何会自动重新启动应用的服务,例如 作为区域监控或重大位置变更服务

    Signification Location Changes 可以在不使用时启动应用,这需要 Always 权限。

    【讨论】:

    • 谢谢,我认为这可能是问题所在。但这对我来说似乎是一种奇怪的方法。因为 SLC 是获取用户位置的最省电的方式,但需要最高级别的授权。我认为 Apple 会因为这个限制而自取其辱。
    • 除非您希望应用程序在用户不在应用程序中时由系统启动,否则您不需要 SLC。如果您只是在应用程序运行时监控位置,您可以连续运行 CLLocationManager,并将所需精度设置为 3000m,以获得相同的电池友好型结果。
    • 我怀疑它是否会像电池一样友好,因为它会激活 GPS 而不是使用蜂窝/wifi 信号。如果我错了,请纠正我。
    • 3000m 将关闭 GPS 并仅使用蜂窝/wifi。您不需要 GPS 即可获得 3000 米的精度。 300m 或以下需要 GPS (GNSS)。
    猜你喜欢
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2012-03-22
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多