Java Android SDK如何与内部GPS SDK对话

Java Android SDK如何与内部GPS SDK对话,java,android,gps,Java,Android,Gps,我很高兴使用LocationManager和nAlistener开发GPS感知应用程序,所以我不是问如何使用Android SDK,而是问Android SDK如何与内部GPS SDK对话 我试图理解Android是如何与GPS SDK交互的,例如,在GPRMC语句中提供速度和方向值。它们是直接来自芯片SDK还是由Android计算? 我正在查看LocationManager.java中的Android源代码,但我找不到它在哪里与GPS SDK交互。 有人能告诉我正确的方向吗?我希望GPS是一个

我很高兴使用
LocationManager
nAlistener
开发GPS感知应用程序,所以我不是问如何使用Android SDK,而是问Android SDK如何与内部GPS SDK对话
我试图理解Android是如何与GPS SDK交互的,例如,在GPRMC语句中提供速度和方向值。它们是直接来自芯片SDK还是由Android计算?
我正在查看
LocationManager.java中的Android源代码,但我找不到它在哪里与GPS SDK交互。

有人能告诉我正确的方向吗?

我希望GPS是一个独立的子系统,通过串行NMEA连接向系统报告数据。如果是这样,GPS模块将使用内部方法计算速度(SOG)和航向(COG)。对于低成本GPS模块,它们通常具有过滤位置差法。高端GPS接收机使用载波相位测量获得即时结果


我猜您正在注意到COG和SOG值的滞后,并希望了解更多关于它们如何推导的信息将帮助您纠正滞后…

是的,您是对的,GPS是一个独立的子系统。我的三星SGS11使用的是SiRF芯片,正如我在他们的文档中读到的,它附带了一个SDK,但是细节不是免费提供的。我想你必须是一个有钱的制造商才能得到这些。我希望通过找到使用SDK解决其中一些问题的Android代码来窥探一下。是的,我已经构建了一个小应用程序,可以根据COG和SOG值进行航位推算,并将结果与位置数据进行比较。在1/2小时和30公里的范围内表现出奇的好,但有一些令人费解的偏移。考虑到COG和SOG是从位置解推导出来的,这将使它们匹配起来。当涉及动力学时,您可能会看到显著的差异。就像一个转弯。此外,低速时位置噪声将主导COG和SOG值。低成本接收机在检测到它们不移动时,通常会切换到静态滤波器。当他们开始移动时,你会看到更大的滞后,而且这个静态过滤器在低速时可能会被愚弄。