2010-11-22 108 views
16

如何读取GPS原始数据,更具体地说,我需要saellites伪距。 该数据不适用于NMEA格式。如何获取GPS原始数据(卫星伪距)?

+0

我正在尝试做与1年前相同的事情。 您是否找到了从GPS获取伪距数据的解决方案?我没有找到任何人做过这样的事情。 – 2012-03-01 15:50:04

回答

16

卫星的伪范围不可用official API,既不通过GpsStatus.Listener也不通过GpsStatus.NMEAListener接口。

the GpsSatellite class可用的唯一可用的信息是:

  • PRN
  • 方位
  • 海拔
  • C/N0
  • 一个 “usedInFix” 布尔。

Android source code只要求本地代码中的那些字段,所以没有希望从任何其他Java API获得它。

无论如何,获取这些数据的最佳方式(不适合市场​​应用)将是探索Android源代码,并找到一个原生的钩子来获取低级数据并通过访问JNI,或重新编译完整的操作系统,修改API以满足您的需求(您还需要为此找到相关的本机代码)。
最后,如果你能让芯片组发送给你GRS NMEA sentences(你可以通过标准的NMEAListener接口获得它们,难度是配置芯片组发送它们),然后你可以计算伪距(这些句子包含卫星残差)

祝你好运,让我知道,如果你尝试任何这些想法!

+0

为什么访问低级别意味着“不适合市场​​应用程序”? – 2010-12-08 08:41:26

5

如果您需要伪距和原始数据,您将不会对NMEA感到幸运​​。 您必须使用接收器的二进制协议, E.g ublox二进制文件用于ublox接收器。 Sirf二进制的Sirf接收器。 卫星生日只适用于启用了RAW选项的特殊接收机。不要期望在智能手机上。

更多详细信息,请参阅ublox协议规范。