2

我已经阅读了很多关于此的相互矛盾的信息。

假设我在模式下使用 Fused Location API,PRIORITY_HIGH_ACCURACY如果我将间隔设置为 10 分钟和 1 分钟,会有很大的不同吗?1小时对10秒?如果是这样,有多严重?

我不知道它在内部是如何工作的,所以我只是想知道如果我需要高精度位置(并且轮询的相对频率较低不是问题),我可以做些什么来节省电池。

https://developer.android.com/training/monitoring-device-state/index.html

开发者网站有关于如何节省电池的建议,但他们似乎没有提供任何具体信息来说明轮询频率对电池寿命的影响。

启用该服务是否始终保持 GPS 开启并因此始终使用电池(因此间隔将是合成的并且仅出于程序原因)?

谢谢!

4

1 回答 1

1

对于 Fused Location API,我不确定他们是否关闭 GPS 或在打开时调整报告间隔,但我会假设他们在更新之间关闭 GPS,否则许多其他人会抱怨耗电。

至于 Android Location Service 的作用,他们确实会关闭 GPS,如果间隔大于 0,则允许手机在两次更新之间空闲(查看LocationManagerService中的源代码)。我在不同的安卓手机上进行了相当多的电源测试,发现保持 CPU 不空闲会消耗大量的电量。加上 GPS 的功耗(防止 CPU 空转),您会看到一个不错的功耗(大约是某些设备的屏幕功耗的 50%)。

最后,我不得不同意 Gabe Sechan 的观点,并建议您选择准确性是否值得消耗电池电量。问问自己这些基本问题:

  • 我需要知道我的用户是在街道的一侧还是另一侧?

    如果是,请使用 GPS,否则使用网络或低精度位置。

  • 我需要多久检查一次用户的位置?

    如果您大约每分钟需要一次,请设置间隔。如果您只关心他们何时离开一般区域,请设置地理围栏或使用网络位置。您还可以收听来自其他应用程序的位置更新,并使您的应用程序更智能地了解何时进行更新。

  • 如果我无法在 X 时间内获得用户的位置,我可以完全跳过此更新吗?

    如果可以,请在更新逻辑中添加超时功能。如果没有,我强烈建议您在这种情况下重新评估应用程序逻辑。

于 2017-03-08T18:19:36.223 回答