Track Satellites With Android
Written by Harry Fairhead   
Monday, 06 November 2017

The Android Framework now provides access to raw Global Navigation Satellite System (GNSS) measurements on some Android devices. This is unlikely ever to become a mainstream requirement, but it is awesome what can now can be measured with a smartphone.

Recent information added to the Location and Sensors section of the Android developer documentation explains how you can use Android Studio to build an app that captures raw GNSS and logs them to a file.

You'll need a device that can capture data from on of the Global Navigation Satellite Systems GPS, GLONASS, GALILEO and BDS and this claimed to be most devices manufactured in 2016 or later and shipped with Android 7.0 or higher. Depending on the device, raw GNSS measurements can include all or some of the following data: 

  • Pseudorange and pseudorange rate
  • Navigation messages
  • Accumulated delta range or carrier
  • Hardware (HW) clock

A full list with the specific systems they support and the measurements they are capable of is provided.

The GNSS Logger, which is a sample app that shows how to log data related to Android location, including raw GNSS measurements, is part of the GPS Measurement Tools project, open sourced on GitHub.

Code is provided to :

  • Read data from GnssLogger App
  • Compute and visualize pseudoranges
  • Compute weighted least squares position and velocity
  • View and analyze carrier phase (if it is present in the log file)





Once you have captured the GNSS log using the GNSS Logger, you can copy the log files from the device to your computer for further analysis. From within the GNSS Logger you can send the files to yourself via email or save them to Google Drive. Alternatively, you can save the files using the file management app on the device, or you can use the Android Debug Bridge (ADB).

The GNSS Analysis App is what you use to analyze the GNSS receiver behavior. It is built on MATLAB but you don't need MATLAB to run it as the app is compiled into an executable that installs a copy of the MATLAB runtime if needed.

The GNSS Analysis control panel provides features such as:

  • Select which satellites are displayed
  • Control the reference position, velocity, and time (PVT) used for calculating measurement errors.
  • Generate analysis reports
  • Define a window in the data between start and end times.



The GNSS Analysis app organises plots into RF, clocks, and measurements. The RF (radio frequency) plots show the four satellites with the strongest signals for each constellation, for each satellite, the time plot of carrier to noise density and the skyplot of satellite positions.



More Information

GPS Measurement Tools on GitHub

Android devices that support raw GNSS measurements

Related Articles

Spectacular Launch For Android Oreo

Android Studio 3.0 Released

Android 8.1 Introduces Neural Networks API


To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



GitHub Actions Adds Arm-Hosted Runners

GitHub has added Arm-based Linux and Windows runners for GitHub Actions. The developers say the addition provides power, performance and sustainability improvements for all your GitHub Actions jobs.

Oracle Database 23ai - Feel the Difference

The Empire strikes back with the most advanced
Oracle version to date. The focus of this new version is surprise, surprise, AI , which is so embedded into the new product that Oracle found prudent [ ... ]

More News

C book



or email your comment to:


Last Updated ( Monday, 06 November 2017 )