2010-11-22 33 views
2

得到最准确的位置,我已经使用这个代码的Android:如何从GPS

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
       500, 50, this); 

使用GPS获得我的位置。根据我的理解,这段代码每500毫秒更新一次GPS,直到精度约为50毫秒。对?现在我怎么知道它何时达到了这个精度?这样我可以在短信中发送最准确的位置。

回答

4

500是通知的最小时间间隔,仅为提示。

如可以看到在javadocs

接收通知的最小时间间隔,以毫秒为单位。此字段仅用作节省电量的提示,位置更新之间的实际时间可能大于或小于此值。

因此可以(并将)看到该间隔变化(LocationListener的不会总是与精确500ms的间隔称为)

50是minDistance才会并根据该文档:最小距离间隔通知,以米为单位。所以这不影响准确性,它只定义位置更新的触发器。 (如果您移动minDistance,则发生触发)。因此,这不影响准确性。

然而,您LocationListener的将返回android.location.Location,以及暴露的精确度(修复米数的准确度)

+0

所以你说,它实际上并不重要多少次更新? – 2010-11-22 08:31:31

+0

时间间隔越短,您获得的位置更新就越多。在这些位置更新中,您可以选择最准确的一个。有关一些常见用例,请参阅http://developer.android.com/guide/topics/location/obtaining-user-location.html。 我也建议你在现场进行测试,因为通过模拟器模拟GPS位置更新是有限的,并不总是反映真实世界的情况。 同时考虑到电池寿命,因为在请求位置更新时不断启用GPS,可能会耗尽电池电量。 – ddewaele 2010-11-22 08:40:39

+0

好的谢谢。所以还有一个问题:)我想要获得一次位置,并发送短信短信。我应该做任何改变吗?我如何确保在获取位置后才发送短信? – 2010-11-22 09:09:26