Android 如何获取GPS原始数据(卫星伪距)?

Android 如何获取GPS原始数据(卫星伪距)?,android,gps,nmea,Android,Gps,Nmea,如何读取GPS原始数据,更具体地说,我需要saellites伪距。 此数据没有NMEA格式。您可以查看satinfo 不确定它是否提供了您所需的特定功能,或者它是否仍然适用于最新版本的android卫星虚拟范围在中不可用,既不通过GpsStatus.Listener也不通过GpsStatus.NMEAListener接口 中唯一可用的信息是: PRN 方位角 仰角 C/N0 “usedInFix”布尔值 它只从本机代码中询问这些字段,因此不希望从任何其他Java API中获得这些字段 无论

如何读取GPS原始数据,更具体地说,我需要saellites伪距。
此数据没有NMEA格式。

您可以查看satinfo


不确定它是否提供了您所需的特定功能,或者它是否仍然适用于最新版本的android

卫星虚拟范围在中不可用,既不通过GpsStatus.Listener也不通过GpsStatus.NMEAListener接口

中唯一可用的信息是:

  • PRN
  • 方位角
  • 仰角
  • C/N0
  • “usedInFix”布尔值
它只从本机代码中询问这些字段,因此不希望从任何其他Java API中获得这些字段

无论如何,获取这些数据的最佳方法(不适用于市场上的应用程序)是探索Android源代码,或者找到一个本机钩子以获取低级别的数据并通过JNI进行访问,或者重新编译完整的操作系统,修改API以满足您的需要(您还需要找到相关的本机代码)。
最后,如果您可以让芯片组发送给您(您可以通过标准的NMEAListener接口获取它们,困难在于配置芯片组以发送它们),那么您可以计算伪范围(这些句子包含卫星的残差)


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

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


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

为什么访问低级别意味着“不适合市场应用程序”?如果您需要使用NDK稳定API中未列出的本机API,您无法确保该API在所有操作系统版本和硬件上都能一致工作(但您仍然可以在市场上发布该应用程序)。如果你需要重新编译你自己的Android操作系统,你甚至无法将其打包到apk中。伪范围数据有很多应用程序。我能做些什么来推动谷歌在未来的API中包含它?@GPSmaster:在Android项目页面上打开一个问题:情况不再如此。安卓现在从现代兼容的智能手机上曝光。我正试图做和你一年多前做的一样的事情。您是否找到了从GPS获取伪距数据的解决方案?我没发现有人做过这样的事。