How can I get the GPS raw data (satellites pseudo range)?

guy r picture guy r · Nov 22, 2010 · Viewed 21.8k times · Source

How can I read GPS raw data, to be more specific I need the saellites pseudo range. This data is not available in NMEA format.

Answer

Stéphane picture Stéphane · Nov 22, 2010

Satellites pseudo-ranges are not available in the official API, neither through the GpsStatus.Listener nor the GpsStatus.NMEAListener interfaces.

The only available info available in the GpsSatellite class are:

  • PRN
  • azimuth
  • elevation
  • C/N0
  • a "usedInFix" boolean.

The Android source code asks just those fields from the native code, so no hope to get it from any other Java API.

The best way for you to get this data anyway (which is not suitable for a Market-able application) would be to explore Android source code, and either find a native hook to get the data at low level and access through JNI, or recompile the full OS modifying the API to your needs (you also need to find the relevant native code for that).
Finally, if you can get the chipset to send you GRS NMEA sentences (you would get them through the standard NMEAListener interface, the difficulty is configuring the chipset to send them) you can then compute the pseudo-ranges (those sentences contain satellites' residuals)

Good luck and let me know if you try any of these ideas!