Java GPS定位精度问题

Java GPS定位精度问题,java,android,Java,Android,我正在开发一款使用高分辨率GPS数据的Android应用程序。它被设计用于汽车,所以我不太担心电池寿命。我注意到,当我在运行谷歌股票导航应用程序的同时运行我的应用程序时,我的GPS数据的精度在几(

我正在开发一款使用高分辨率GPS数据的Android应用程序。它被设计用于汽车,所以我不太担心电池寿命。我注意到,当我在运行谷歌股票导航应用程序的同时运行我的应用程序时,我的GPS数据的精度在几(<10)米以内

但是,当我在没有导航应用程序的情况下运行应用程序时,我的位置数据开始变得精确,但很快就会变差(1000米以内)。我的应用程序处于
部分唤醒锁定状态
,因此CPU保持运行,但屏幕可以关闭

以下是我请求GPS定位的方式:

requestLocationUpdates(LocationManager.GPS\u提供程序,0,0,GPSListener)


有人知道更精确地请求数据的方法吗?这意味着在不同的GPS呼叫之间的时间或距离没有下限。但很明显,股票导航应用程序正在做一些不同的事情。有人有什么想法吗?提前感谢。

您应该使用请求位置更新 (长时间、浮动距离、标准、悬而未决的意图)
并将标准设置为精度高,以及您可能会探索的其他一些选项。如果您也在使用WiFi网络,那么您还可以获取手机位置以提供更精确的信息

可以使用Android NDK吗?如果您需要更高的精度,更直接地访问硬件可能是一种方法。不过,这只是一个猜测,如果这是最终目标的话,我不确定使用NDK并将其发布到Android市场的意义。谢谢你的提示。你知道我是否必须自己做Wi-Fi定位,或者是否有一个库可以聚合GPS/手机塔/Wi-Fi并给我lat/lon坐标?添加另一个
RequestLocationUpdate(字符串提供程序、long minTime、float MindDistance、LocationListener侦听器)
但这次提供程序是
LocationManager.NETWORK\u提供程序
。因为您说的是泰语,所以两个提供程序都可以工作,但如果不是,那么用户
LocationManager.getBestProvider(Criteria Criteria,boolean Enabled)
将获得与上述标准匹配的最佳提供程序。如果你喜欢这个答案,那么请接受它。另外,作为参考,这种方法在Froyo中不起作用。接受标准的
requestLocationUpdates
版本需要API级别9(姜饼)。