【问题标题】:Get the location updates using wifi or cellular tower signal使用 wifi 或蜂窝塔信号获取位置更新
【发布时间】:2013-01-20 03:06:37
【问题描述】:

我正在开发一个应用程序,我想在其中使用 CLLocationManager 类获取位置详细信息。但是如果我调用 startlocationupdating 方法,那么 GPS 就会启动。

我不想使用 GPS 获取位置详细信息。我想关闭 GPS 并使用 WiFi 或蜂窝塔获取位置详细信息。我该怎么做?

【问题讨论】:

标签: iphone gps cllocationmanager


【解决方案1】:

来自 CLLocationManager 文档页面 (https://developer.apple.com/library/mac/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html)

对于您使用的服务,您应该准确配置与该服务关联的所有属性。位置管理器对象通过在不需要硬件时关闭硬件来积极管理电源。例如,将位置事件的所需精度设置为一公里,使位置管理器可以灵活地关闭 GPS 硬件并仅依赖 WiFi 或蜂窝无线电。关闭 GPS 硬件可以显着节省电量。

基本上,wifi 位置会禁用 GPS,从而降低您的准确度水平

【讨论】:

  • 如果我设置了距离过滤器值,则你符合条件,那么 GPS 将关闭。
  • answer 中所述,使用 kCLLocationAccuracyHundredMeters 精度常数不应激活 GPS
  • 该帖子的第一个答案适合我。但这是否由苹果提供?
  • @swampie 在您发布的链接中描述了 kCLLocationAccuracyHundredMeters 可以在农村地区启用 GPS。
【解决方案2】:

desiredAcuracy 设置为kCLLocationAccuracyKilometer; 您可以通过以下方式证明您没有 GPS:

  • 你永远不会得到course(度数)(也可以称为航向,请纠正我)
  • 你永远不会得到speed (m/s)

来自您的 CLLLocation 对象,尤其是在移动时
进一步如果你

  • 不要收到altitude

它也不是 GPS(在车辆静止时也可以使用

另一种避免 GPS 的可能性是使用“significantLocationChange”模式启用定位服务。但对此我没有亲身经历。

【讨论】:

  • 位置对象的速度属性!以米/秒为单位
  • 我想每 1500 米获取一次位置更新。因此,如果我将所需精度设置为 kCLLocationAccuracyThreeKilometers。我是否可以每 1500 米获取一次位置更新。
  • 您可以启用 distanceFilter 并将其设置为 1500m。但是如果 1500m 不能用 celltowe 或 wifi 访问,ios 可能会启用 GPS。你不能两者兼得,没有 GPS 和每 1500 米
  • 如果我们将 desiredaccuracy 设置为 kCLLocationAccuracyThreeKilometers 那么蜂窝塔也在工作。所以为什么启用 gps。
  • @NareshVenkat 不能保证accuracyThreKilometers 不包括GPS,请参阅apple doku,“它使位置管理器可以灵活地关闭GPS”。如果没有找到手机信号塔,则仍然使用 GPS
猜你喜欢
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-16
  • 1970-01-01
  • 2011-09-10
  • 2014-04-15
  • 2011-10-03
相关资源
最近更新 更多