2012-01-30 51 views
1

这是一个与“常规”使用GPS完全相反的问题。我们的目标是让gps在存在的众多设备上以非常精确的速率(当可用时)读取或“修复”。因此,直到现在我相信例如GPS定时问题

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 1f, this); 

会为我照顾这个。但是,当在Nexus S和Galaxy Nexus上进行测试时,我会得到完全不同的行为,几乎相反(一种情况下的读取间隔最短时间,另一种情况下最长时间)。为什么是这样,以及可以做些什么来解决它?

回答

0

这是为什么

如果你读the documentation,你会看到minTime参数requestLocationUpdates()“只是作为一个提示,以节省电力,并且位置更新之间的实际时间可能大于或小于此值“。

可以做些什么来解决它?

您提出了一个新的设计,不会对GPS修复的可用性和频率做任何假设。

+0

是的,我还记得读过类似的东西。事情是,时机直到现在从来都不是真正的问题。我猜想编程需要最少的时间来处理大多数问题,但它并不完全是按照给定的速率。我也很清楚信号被阻塞等问题,所以目前我正在考虑一个理想的情况。想知道在理想条件下从哪里获得关于最大时间的信息? – Scalarr 2012-01-31 19:41:34

+0

@Scalar:“在理想条件下,从哪里获得关于最大时间的信息的任何想法?” - 打败我。这将取决于太多的硬件特定变量恕我直言(例如,芯片组)。你所能做的最好的事情是指定一个'minTime'为'0',处理每一个修复程序,自己平滑数据速率,并祈祷没有停车场。 :-) – CommonsWare 2012-01-31 21:01:30

+0

是的,我害怕得到答案;-)虽然! – Scalarr 2012-01-31 22:27:56