16

如何读取 GPS 原始数据,更具体地说,我需要卫星伪距。此数据不提供 NMEA 格式。

4

3 回答 3

18

卫星伪距在官方 API中不可用,既不通过 GpsStatus.Listener 也不通过 GpsStatus.NMEAListener 接口。

GpsSatellite 类中唯一可用的信息是:

  • PRN
  • 方位角
  • 海拔
  • C/N0
  • “usedInFix”布尔值。

Android 源代码仅从本机代码中询问这些字段,因此不希望从任何其他 Java API 中获取它。

无论如何,获取这些数据的最佳方式(不适合 Market-able 应用程序)是探索 Android 源代码,并找到一个本地挂钩以在低级别获取数据并通过 JNI 访问,或者重新编译根据您的需要修改 API 的完整操作系统(您还需要为此找到相关的本机代码)。
最后,如果您可以让芯片组向您发送GRS NMEA 语句(您可以通过标准的 NMEAListener 接口获得它们,困难在于配置芯片组以发送它们)然后您可以计算伪距离(这些语句包含卫星的残差)

祝你好运,如果你尝试这些想法,请告诉我!

于 2010-11-22T22:21:45.117 回答
6

如果您需要伪距和原始数据,那么使用 NMEA 将不会很幸运。您必须使用接收器的二进制协议,例如 ublox 二进制用于 ublox 接收器。Sirf 接收器的 Sirf 二进制文件。卫星原始日期仅在启用了 RAW 选项的特殊接收器上可用。不要指望在智能手机上。

您可以在 ublox 协议规范中找到更多详细信息。

于 2012-03-17T00:23:56.787 回答
1

你可以看看 satinfo

http://code.google.com/p/codetastrophe/source/browse/#svn/trunk/projects/satinfo

不确定它是否专门提供了您正在寻找的东西,或者它是否仍然适用于最新版本的 android

于 2010-11-22T22:00:05.047 回答