【问题标题】:Location Update and sending location to server causing iphone heats and restarts automatically位置更新并将位置发送到服务器导致 iphone 发热并自动重启
【发布时间】:2015-01-08 06:38:48
【问题描述】:

当 lcoation 在后台更新时,我正在使用 CLLlocationManager 获取用户位置并运行 web 服务,但这会导致 iphone 升温和电池耗尽?有人有这个解决方案吗?

【问题讨论】:

  • 发热的根本原因是什么?您可能会寻找allowDeferredLocationUpdatesUntilTraveled:timeout: 来节省电量。

标签: ios objective-c iphone gps cllocationmanager


【解决方案1】:

获得职位会消耗权力,您可以做一些事情来避免这种情况:

  • 使用重大的位置变化(如果您不需要每次都精确的位置,这很好)
  • 限制准确度(更改此设置可以避免使用 GPS,因为它真的很耗电)

我不了解热量,是的 GPS 使设备变得更热,但我从未经历过因热量而重启的情况。
你确定你没有参与昂贵的计算任务吗?你可以使用 profiler 或更高版本的 xcode 来检查。
您还可以设置距离过滤器,这将继续获取位置(它不会减少电池消耗)但只有在达到距离阈值时才会调用 delagate 回调。
在 iOS6 上还引入了deferring location updates in background 的概念,这可能也是管理设备传出的网络流量的最佳解决方案。

【讨论】:

    【解决方案2】:

    事实上,您只能在低定位精度(1000km)和高定位精度(3-6m)之间做出决定。 在第一种情况下 GPS 芯片被禁用,在第二种情况下它被启用。

    如果已启用,并且您需要精确的位置,则您无能为力。 GPS 需要电源,并且这种电源持续时间超过 8 小时,完全精确定位(在我的 iphone4 上测量)

    预热没问题,但是我不记得我的手机由 GPS 引起的预热(我会尽快检查)。但可以肯定的是,它永远不会热得太多以至于它会重新启动, 所以你的情况有点奇怪,这也可能是你设备的缺陷。

    预热的原因也可能是您尝试经常与服务器通信。 您可以自己检查,只需下载一个不错的 GPS 应用程序,然后让它记录轨迹。 如果它也变热,则您的设备可能有问题。 (或者你生活在一个极热的环境中,阳光强烈地照射在你的手机上。) 也可以通过禁用您的网络代码进行测试。

    【讨论】:

      猜你喜欢
      • 2017-12-28
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多