位置更新并将位置发送到服务器导致 iphone 加热并自动重启

Location Update and sending location to server causing iphone heats and restarts automatically

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

获得职位会消耗权力,您可以采取一些措施来避免这种情况:

  • 使用显着的位置更改(如果您不需要每次都精确定位,这很好)
  • 限制精度(改变这个可以让你避免使用GPS,它真的是一个电池耗尽)

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

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

如果它已启用,并且您需要精确的位置,您将无能为力。 GPS 需要电源,并且该电源持续 8 个多小时的完全精确定位(在我的 iphone4 上测量)

预热没问题,但我不记得 GPS 导致我的 phone 预热(我会尽快检查)。但可以肯定的是,它永远不会升温到会重新启动的地步, 所以你的情况有点奇怪,这也可能是你设备的缺陷。

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