假设我必须使用一个提供商,比如GPS。我有一个最低精度要求,我需要一个单个信号来满足它。最佳做法是什么?
我正在做的是,我调用"requestLocationUpdates"来获得连续的位置,然后检查每个位置的准确性,最后在获得好的位置时调用"removeUpdates"。
我是否应该在minTime和minDistance设置为0的情况下执行此操作,因为精度足够随机?或者我应该给它设置一些特殊的值,因为根据GPS的性质,它可能会一直给我类似的精度,除非我离开(比如说离开建筑物?)或者我给它时间(比如说随机大气条件或卫星位置改变?)?如果是,会是什么值?
注:根据本文,GPS获取定位比获取位置后记使用更多的功率。对我来说,这意味着"requestSingleUpdate"不符合准确性要求。这是对的吗?
如果您使用NETWORK,它会以同样的方式工作吗?
在您的情况下,只有解决方案有效:
将提供商设置为仅GPS,将时间和精度设置为最佳(0),并自己决定,例如通过从位置读取属性估计准确度。
的确,最初的定位需要最大的功率,所以每隔20秒启用和禁用GPS是没有意义的。不幸的是,当临时禁用GPS时,我不知道以分钟为单位的阈值在哪里可以节省电池。
准确度要求目前只有区分GPS(3-6m)和网络(GSM小区:1000m)才有意义。WLAN有时会比GSM小区定位更好,但通常不可用,可靠性也较低。如果你的应用程序决定你或多或少需要敏锐的位置,那么除了"最佳"之外,还需要准确度。