The Android Framework provides access to raw GNSS measurementson several Android devices.
Simplify your Android development, grow your user base, and monetize more effectively with Google services. And add high-engagement features to your app. Analyze raw sensor data or take advantage of shared fitness data.
Note: Google has released version 2.6.3.0 of the GNSS Analysis App. For moreinformation, see the GNSS Analysis app v2.6.3.0 release notes.This article lists Android devices that support raw GNSS measurements aswell as tools to log and analyze GNSS data. You can find the tools inthe GPS Measurement Toolsrepo on GitHub, which includes the GNSS LoggerAPK andthe GNSS Analysis app forLinux,Windows,macOS,and the Installation and User Manual.
Original equipment manufacturers (OEMs), developers, and researchers can make use of the tools in this page to test new phone designs, validate functionality, develop new algorithms, evaluate improvements to the GNSS system implementation as well as building value added apps.
Android devices that support raw GNSS measurements
Before you can get any raw GNSS output, you need to make sure that youhave a device that can capture such data. Most devices manufactured in 2016 orlater 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 thefollowing data:
- Pseudorange and pseudorange rate.
- Navigation messages.
- Accumulated delta range or carrier.
- Hardware (HW) clock.
The table below lists devices that support raw GNSS measurements and the datathey provide. This isn't a comprehensive list, you should contact themanufacturer to make sure that a specific device supports raw GNSS measurements.
Model | Android version | Automatic Gain Control | Navigation messages | Accumulated delta range | HW clock | L5 Support | Global systems |
---|---|---|---|---|---|---|---|
Pixel 3 XL | 9.0 | yes | no | no | yes | no | GPS GLONASS GALILEO BeiDou |
Pixel 3 | 9.0 | yes | no | no | yes | no | GPS GLONASS GALILEO BeiDou |
Vivo X21 | 9.0 | no | no | no | yes | no | GPS GLONASS BeiDou |
OPPO R15 Pro | 9.0 | no | no | no | yes | no | GPS GLONASS GALILEO BeiDou |
Xiaomi Mi 8 | 8.1 | no | yes | yes | yes | yes | GPS GLONASS GALILEO BeiDou QZSS |
LG V40 ThinQ | 8.1 | no | no | no | yes | no | GPS GLONASS GALILEO QZSS |
OnePlust 6T | 9.0 | no | no | no | yes | no | GPS GLONASS GALILEO QZSS |
Samsung Note 9 | 8.1 | no | no | no | yes | no | GPS GLONASS GALILEO QZSS SBAS |
LG G7 ThinQ | 8.0 | no | no | no | yes | no | GPS GLONASS |
Xiaomi Mix 2S | 9.0 | no | no | no | yes | no | GPS GLONASS GALILEO SBAS |
Samsung Galaxy S9 (Exynos)1 | 8.0 | no | yes | yes | yes | no | GPS GLONASS GALILEO QZSS |
Samsung Galaxy S9+ | 8.0 | no | no | no | yes | no | GPS GLONASS GALILEO |
Sony Xperia XZ2 | 8.0 | no | no | no | yes | no | GPS GLONASS GALILEO QZSS |
OPPO R15 | 9.0 | no | no | no | yes | no | GPS GLONASS GALILEO BeiDou |
HTC U11 Plus | 8.0 | no | no | no | yes | no | GPS GLONASS |
HTC U11 Life | 8.0 | no | no | no | yes | no | GPS GLONASS |
Google Pixel 2 XL | 8.0 | yes | no | no | yes | no | GPS GLONASS GALILEO BeiDou QZSS |
Google Pixel 2 | 8.0 | yes | no | no | yes | no | GPS GLONASS GALILEO BeiDou QZSS |
Sony Xperia XZ1 | 8.0 | no | no | no | yes | no | GPS GLONASS GALILEO BeiDou |
Samsung Note 8 (Exynos) | 7.1 | no | yes | yes | yes | no | GPS GLONASS GALILEO BeiDou |
Samsung Note 8 (QCOM) | 7.1 | no | no | no | yes | no | GPS GLONASS GALILEO BeiDou |
LG V30 | 7.1.2 | no | no | no | yes | no | GPS GLONASS GALILEO |
Moto X4 2017 | 7.1 | no | no | no | yes | no | GPS GLONASS GALILEO |
Essential PH-1 | 7.1 | no | no | no | yes | no | GPS GLONASS |
Moto Z2 | 7.1 | no | no | no | yes | no | GPS GLONASS |
HTC U11 | 7.1 | no | no | no | yes | no | GPS GLONASS |
OPPO R11 | 7.1 | no | no | no | yes | no | GPS GLONASS GALILEO BeiDou |
Samsung S8 (Exynos)2 | 7.0 | no | yes | yes | yes | no | GPS GLONASS GALILEO BeiDou QZSS |
Samsung S8 (QCOM)3 | 7.0 | no | no | no | yes | no | GPS |
Google Pixel XL | 7.0 | no | no | no | yes | no | GPS |
Google Pixel | 7.0 | no | no | no | yes | no | GPS |
Nexus 6P4 | 7.0 | no | no | no | no | no | GPS |
Nexus 5X4 | 7.0 | no | no | no | no | no | GPS |
Nexus 9 (non cellular version)5 | 7.1 | no | yes | yes | yes | no | GPS GLONASS |
1Exynos, EMEA devices, Models: G960F or G965F
2Exynos, EMEA devices, Models: G950F or G955F
3QCOM, USA devices, Models: G950U or G955U
4 Raw measurements are provided only when a GPS position is available.
5 No duty cycling. Works only on the non cellular version of Nexus 9.
For more information about the data provided by a device, see Global NavigationSatellite Systems.
Logging raw measurements
You can use Android Studio to build an app that captures raw GNSS measurementsand logs them to a file. The GPS MeasurementTools project includesGNSS Logger, a sample app that shows how to log data related to Androidlocation, including raw GNSS measurements.
What Is Google Services Framework
Download the GNSS LoggerAPK to install thesample app in your device.
To get GNSS output with the sample app, your device must support raw GNSSmeasurements. For more information, see Android devices that support rawGNSS measurements.
Once you have captured the GNSS log using the GNSS Logger, you can copy the logfiles from the device to your computer for further analysis. From within theGNSS Logger you can send the files to yourself via email or save them to GoogleDrive. Alternatively, you can save the files using the file management app onthe device, or you can use the Android Debug Bridge (ADB) as explained inCopy files to/from a device.
To browse the sample source code, see theGNSSLogger
folder in the GPS MeasurementTools repository on GitHub.
Analyzing raw measurements
The GNSS Analysis app reads the GPS/GNSS raw measurements collected by the GNSSLogger and uses them to analyze the GNSS receiver behavior, as shown in figure1.
You can download the app forLinux,WindowsandmacOS,systems, or download the Installation and UserManual.
Figure 1. GNSS Logger collects the measurements that can be consumed by GNSSAnalysis.
The GNSS Analysis app is built onMATLAB, but you don't needto have MATLAB to run it. The app is compiled into an executable that installs acopy of the MATLAB Runtime.
GNSS Analysis Control Panel
The GNSS Analysis control panel, shown in figure 2, lets you manage appfeatures, such as:
- Select which satellites are displayed.
- Control the reference position, velocity, and time (PVT) used for calculatingmeasurement errors.
- Generate analysis reports.
- Define a window in the data between start and end times.
)
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.
)
Figure 3. GNSS Analysis app displaying interactive plots. Backuptrans iphone sms transfer.
The RF column shows the following data:
O filme do Jackie Chan completo 2017. Smith Filmes HD. Unsubscribe from smith Filmes. A Vida Por Um Fio-assistir filme completo dublado em portugues. O Pequeno Stuart Little 2 Filme completo em portugues. Ver filmes no youtube gratis dublado. Nov 3, 2017 - Notice. Age-restricted video (based on Community Guidelines). Film & Animation. Opening Titles. Henning Lohner. A Chegada -assistir filme completo dublado em portugues. Benjamin Reed.
- For each constellation, the four satellites with the strongest signals.
- For each satellite, the time plot of carrier to noise density (C/No).
- The skyplot of satellite positions.
The clock column shows the following data:
- The pseudoranges.
The offset frequency of the receiver clock, which is computed using one of thefollowing reference positions:
- Automatically computed mean position.
- Latitude, longitude, and altitude entered by the user.
- National Marine Electronics Association (NMEA) file with truth referencePVT.
Note: One of the major benefits of using raw measurements is that you canobserve the receiver clock behavior with a precision of at least 1 partper billion (ppb). This is important to watch when building a device,because any heat source near the reference oscillator might cause theclock error rate to increase rapidly.
The offset of the standby clock that keeps time when the receiver resets theduty cycle of the primary oscillator.
The measurements column shows the following data:
- The weighted least squares position results obtained from the rawpseudoranges. The weighting is done using the reported uncertainty of eachmeasurement, which is part of the raw measurement API spec.
- The errors of each pseudorange for each measurement.
The errors of each pseudorange rate for each measurement.
Note: A major benefit of raw measurements is that you can analyze theerrors of each measurement, which provides great insight into the signalenvironment and receiver behavior.
GNSS Analysis test report
GNSS Analysis can generate a test report, as shown in figure 4, that evaluatesthe API implementation, received signal, clock behavior, and measurementaccuracy. For each case, the app reports whether the receiver passed or failedthe test based on the performance measured against known benchmarks. The testreport is useful for device manufacturers, who can use it as they iteratethrough the design and implementation of new devices. To generate the testreport, click Make Report.
Figure 4. GNSS Analysis test report
The Compare tab provides a side-by-side comparison, shown in figure 5, ofC/No from several GNSS log files, which is useful when comparing the RFperformance of several devices.
Figure 5. Side-by-side comparison of C/No data from several log files
Interested in the source code? The GPS MeasurementTool Project provides an opensource MATLAB example that youcan use to perform the following actions using GPS constellation signals:
Raw Apk Google Services Framework Apk
- Read data captured with the GNSS Logger sample app.
- Compute and visualize pseudoranges.
- Compute weighted least squares position and velocity.
- View and analyze carrier phase.
GNSS Analysis app v2.6.3.0 release notes
GNSS Analysis app version 2.6.3.0 includes the following updates:
- Full Support of multi-constellation and multi-frequency GnssLog analysis, including L1-L5 analysis, and report enhancement with PASS/FAIL results.
- Fill missing discontinuity counter increments from the GNSS chipset in the case where ReceivedSvTimeNanos is adjusted without reporting an increment. A warning is generated to report this issue to the end user.
- Added PASS/FAIL/WARNING logs to the Gnss Analysis Report related to mandatory and highly recommeneded raw GNSS fields.
- Epochs with Full Bias not set or set to max integer are no longer considered for analysis.
- GLONASS satellites reported in part of the log with FSN IDs and other part as OSN IDs are now merged.
- Optimized for execution speed and stability.
Provide feedback
We want to improve the support for GNSS on Android. Let us know about any issueswith GNSS support on Android by using the GNSS issuetracker. Please check if your issue has already been addressed in the FAQ before posting it.
If you have used the GNSS Analysis tools, please provide feedback by answering ashort survey. If you have otherquestions or a request for support, see Developer SupportResources.
You can find answers to frequently asked questions in the GNSS Analysis ToolsFAQs.