Skip to content

Most visited

Recently visited

navigation

Raw GNSS Measurements

Android apps typically access GNSS chipsets through a filter, which improves the GNSS location output for the majority of use cases. Filters use additional sensors, such as motion sensors, to improve the end user experience. However, filtering isn't appropriate for some applications used by professionals such as researchers and Original Equipment Manufacturer (OEM) developers. The Android Framework provides access to raw GNSS measurements on some Android devices.

This article lists Android devices that support raw GNSS measurements as well as tools that help you log and analyze GNSS data. You can find the tools in the GPS Measurement Tools repo on GitHub, which includes the GNSS Logger APK and the GNSS Analysis app for Linux, Windows, and macOS.

Android devices that support raw GNSS measurements

Before you can get any raw GNSS output, you need to make sure that you have a device that can capture such data. Most devices manufactured in 2016 or later and shipped with Android 7.0 or higher provide raw GNSS data.

Depending on the device, raw GNSS measurements can include all or some of the following data:

The table below lists devices that support raw GNSS measurements and the data they provide. This isn't a comprehensive list, you should contact the manufacturer to make sure that a specific device supports raw GNSS measurements.

Model Android version Pseudorange data Navigation messages Accumulated delta range HW clock Global systems
Huawei Honor 9 7.0 yes yes yes yes GPS
GLONASS
Samsung S8 (Exynos)1 7.0 yes yes yes yes GPS
GLONASS
GALILEO
BDS
Samsung S8 (QCOM)2 7.0 yes no no yes GPS
Huawei P10 7.0 yes yes yes yes GPS
GLONASS
GALILEO
BDS
Huawei P10 Lite 7.0 yes no no yes GPS
Huawei Honor 8 7.0 yes yes yes yes GPS
GLONASS
BDS
Huawei Mate 9 7.0 yes yes yes yes GPS
GLONASS
BDS
Huawei P9 7.0 yes yes yes yes GPS
GLONASS
BDS
Pixel XL 7.0 yes no no yes GPS
Pixel 7.0 yes no no yes GPS
Nexus 6P3 7.0 yes no no no GPS
Nexus 5X3 7.0 yes no no no GPS
Nexus 9 (non cellular version)4 7.1 yes yes yes yes GPS
GLONASS
Pixel 2 XL5 8.0 yes no no yes GPS
GLONASS
GALILEO
BDS
QZSS
Pixel 25 8.0 yes no no yes GPS
GLONASS
GALILEO
BDS
QZSS

1 Exynos, EMEA devices, Models: G950F or G955F
2 QCOM, USA devices, Models: G950U or G955U
3 Raw measurements are provided only when a GPS position is available.
4 No duty cycling. Works only on the non cellular version of Nexus 9.
5 Automatic gain control supported.

For more information about the data provided by a device, see Global Navigation Satellite Systems.

Logging raw measurements

You can use Android Studio to build an app that captures raw GNSS measurements and logs them to a file. The GPS Measurement Tools project includes GNSS Logger, a sample app that shows how to log data related to Android location, including raw GNSS measurements.

Download the GNSS Logger APK to install the sample app in your device.

To get GNSS output with the sample app, your device must support raw GNSS measurements. For more information, see Android devices that support raw GNSS measurements.

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) as explained in Copy files to/from a device.

To browse the sample source code, see the GNSSLogger folder in the GPS Measurement Tools repository on GitHub.

Analyzing raw measurements

The GNSS Analysis app reads the GPS/GNSS raw measurements collected by the GNSS Logger and uses them to analyze the GNSS receiver behavior, as shown in figure 1.

You can download the app for Linux, Windows, and macOS systems, or download the Installation and User Manual.

GNSS Logger and GNSS Analysis

Figure 1. GNSS Logger collects the measurements that can be consumed by GNSS Analysis.

The GNSS Analysis app is built on MATLAB, but you don't need MATLAB to run it. The app is compiled into an executable that installs a copy of the MATLAB runtime if needed.

GNSS Analysis Control Panel

The GNSS Analysis control panel, shown in figure 2, lets you manage app features, such as:

GNSS Analysis Control Panel)

Figure 2. GNSS Analysis control panel

GNSS Analysis interactive plots

The GNSS Analysis app provides interactive plots organized in radio frequency (RF), clocks, and measurements columns, as shown in figure 3.

GNSS Analysis interactive plots)

Figure 3. GNSS Analysis app displaying interactive plots.

The RF column shows the following data:

The clock column shows the following data:

The measurements column shows the following data:

GNSS Analysis test report

GNSS Analysis can generate a test report, as shown in figure 4, that evaluates the API implementation, received signal, clock behavior, and measurement accuracy. For each case, the app reports whether the receiver passed or failed the test based on the performance measured against known benchmarks. The test report is useful for device manufacturers, who can use it as they iterate through the design and implementation of new devices. To generate the test report, click Make Report.

GNSS Analysis test report

Figure 4. GNSS Analysis test report

The Compare tab provides a side-by-side comparison, shown in figure 5, of C/No from several GNSS log files, which is useful when comparing the RF performance of several devices.

C/No data comparison side-by-side

Figure 5. Side-by-side comparison of C/No data from several log files

For more information about how to install and work with the app, see the Installation and User Manual. You can download the app for Linux, Windows, and macOS systems.

Interested in the source code? The GPS Measurement Tool Project provides an open source MATLAB example that you can use to perform the following actions using GPS constellation signals:

Provide feedback

We want to improve the support for GNSS on Android. Let us know about any issues with GNSS support on Android by using the GNSS issue tracker.

If you have other questions or a request for support, see Developer Support Resources.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)