我想在Android中的GPS应用程序中使用速度因子。我想同时使用网络提供商和gps提供商来获取位置更新。但网络提供商很难提供速度。虽然GPS提供商提供多次修复。
但是,如果在没有速度的情况下找到修复,设备将不会请求新的更新,直到requestLocationUpdates中设置的间隔或距离发生变化?如果是这样,我怎么能强制继续它,直到我有速度。我找到了Criteria类,但我们只能在选择提供者时使用它。我想在获得修复时使用它。我可以吗?
我注意到的另一件事是有时候我开始时速度达到127米/秒,即使我很稳定然后它也会正常化到实际速度。这是设备的问题(在G1中测试),还是一般取决于卫星或位置?
在选择提供商时使用Criteria,是否会提供不适合的位置点?就像我设置criteriaObj.setSpeedRequired(true)一样,如果没有这样的可用,我将不会获得积分。 因为我在任何情况下都需要更新位置。
有什么建议吗?
答案 0 :(得分:5)
回答我的老问题..
要请求连续更新,您需要将最小距离和最小更新时间设置为零。然而,这会使设备电池耗尽更快,但您确信您可以从GPS硬件中获得最佳效果并过滤掉您的条件。
这127 m / s ^ 2确实是android中的一个bug。在查看了Google的mytracks GPS应用程序的代码之后,我发现它已被注意到并在其代码本身中过滤了这个127的特殊情况!
是的,你不会得到没有速度的分数。
答案 1 :(得分:0)
我认为您关于基于Android位置的服务的问题可以在recent Google I/O session中从幻灯片pdf中的第73页幻灯片中得到回答。
特别是,会话描述了如何实现一个以大量位置监听器开始的退避模式,并在准确度提高时删除监听器(此时您的速度计算将是可信的)。