How can you collect high-accuracy GNSS data from Arrow receivers in your own Android app?
At Eos Positioning Systems® (Eos), our goal is to make high-accuracy field location as simple and flexible as possible, no matter what device you choose. This is why our Arrow Series® receivers work with virtually any device or off-the-shelf app.
In fact, Eos partners with a variety of industry-leading mobile app providers to make sure your software selection is varied and reliable.
Eos designed the Arrow receivers to work with any app, including your own. And one of the most popular questions we get is, “How do I set up my Android app to collect Arrow GNSS locations?”
In this article, we will:
- Explain how your Arrow shares location with your own Android app via Bluetooth®
- Show you how to use the free GNSS monitoring app, Eos Tools Pro, to overwrite Internal Location
- Show you how to support GNSS Metadata in your own app
- Help you decide if you should connect your app directly to your Arrow receiver, or use Eos Tools Pro as a link
Let’s start by understanding the most popular Android workflow for Arrow: Sharing your GNSS data from Arrow to your Android app through Eos Tools Pro.
How does Eos Tools Pro share GNSS data into your Android app?
Your Arrow receiver is able to connect directly with the Eos Tools Pro app on your Android device thanks to Bluetooth®.
What is Eos Tools Pro?
Eos Tools Pro is our free GNSS monitoring app available for free on Google Play. After downloading Eos Tools Pro, simply connect it to your Arrow receiver via Bluetooth®, and you will be able to monitor high-accuracy GNSS data in Eos Tools Pro.
To share these high-accuracy coordinates with your own Android app, all you have to do is enable Mock Location on your Android.
How to replace Internal Location with Arrow data by enabling “Mock Location”
Android devices come out of the box with something called “Internal Location“. Internal Location is the built-in location capability of your Android device. For instance, the source of your phone or tablet’s Internal Location might be an internal GPS, or perhaps an Internet network. The accuracy of an Android device’s Internal Location typically varies from about five to tens meters.
However, replacing Internal Location with higher-accuracy coordinates from an external GNSS device is very easy on an Android device. All you have to do is enable Mock Location.
Mock Location is an Android feature available in the “Developer” mode that lets you overwrite your Android’s Internal Location with GNSS data from an external source — such as the Arrow data streaming in from Eos Tools Pro.
Once you’ve done these two steps, you’re ready to consume Arrow coordinates in any Android app:
- Install and connect Eos Tools Pro to your Arrow
- Enable Mock Location
In fact, any Android app that was previously using your Android’s Internal Location will now be using Arrow location data instead. This puts submeter or centimeter GNSS coordinates directly into your own Android app.
Pretty neat, eh?
Keep in mind, Mock Location shares only your GNSS coordinates (X, Y, and Z), the estimated horizontal accuracy, along with speed and course-over-ground (COG) information. To share GNSS Metadata from the Arrow receiver into your Android app, there’s one more step.
How to support GNSS Metadata within your app with our proprietary implementation
What is GNSS Metadata anyway, and why do we collect it?
GNSS Metadata is information about the quality of your location and differential corrections. For instance, metadata might include the position differential status indicator — such as “uncorrected”, “DGNSS”, “RTK fixed” or “RTK float”.
GNSS Metadata is important because it helps mobile crews make smarter decisions in the field, simplifies the tedious workflow previously associated with post-processing, and provides a means of saving the “pedigree” of your collected asset locations.
Eos offers a free and proprietary implementation that lets you extract GNSS Metadata from Eos Tools Pro and easily consume it within your Android app — without any extensive software development. To get started on the workflow with the proprietary content, please contact Eos.
Sharing GNSS data through Eos Tools Pro is the most popular method Arrow users select. However, you might also consider connecting your Android app — instead of Eos Tools Pro — directly to the Arrow via Bluetooth®.
A number of Arrow users opt for this workflow. Here’s why.
What is the benefit of connecting my app directly to the Arrow?
It is worth pointing out that only one app can connect to the Arrow receiver via Bluetooth®. This means you have to pick between Eos Tools Pro or your app.
How do you decide?
The answer is, it depends.
We recommend asking two questions about your workflow.
First, does your workflow meet these two requirements?
- Yes, my app can read standard NMEA data from an external GNSS receiver.
- No, my workflow does not require RTK network connection (OR) Yes, my app features an NTRIP client so that I can connect to an RTK network.
If your app can read NMEA data, and you will not be using land-based correction services (such as an RTK network), then you can connect your app directly to the Arrow receiver.
The use of Eos Tools Pro is completely optional in this case.
So why do most users still use Eos Tools Pro?
Eos Tools Pro offers advanced features that might not be present in your data-collection app. For instance:
- Audible alarms to monitor tolerance thresholds
- Support for XYZ datum shifts and vertical datum (i.e., Orthometric Heights)
- GNSS Metadata fields that might not be monitored in other apps
- And more
Because of this, we do recommend most users connect to Arrow via Eos Tools Pro and follow the Mock Location and metadata workflows to consume GNSS location and metadata.
But what about if your workflow does require land-based corrections, such as from an RTK network?
Second, if your workflow requires an RTK network, your app will need to support an NTRIP client, or you need to use Eos Tools Pro
If your app does not feature an NTRIP client, but you do require RTK corrections, then you will need to use Eos Tools Pro, to take advantage of its NTRIP client. An NTRIP client is what allow you to take advantage of land-based augmentation systems (LBAS), such as RTK corrections.
Very few data-collection apps on the market feature their own built-in NTRIP client. Instead, these apps keep their own designs simple and leave this specialized GNSS task to an app like Eos Tools Pro. Many of the apps Eos recommends already implement support for Eos’ metadata feature.
Closing thoughts before you collect high-accuracy GNSS locations within your own app
No matter which option you choose, we hope this article has made it a little easier to understand how to share and capture Arrow location data within your own Android app.
But please remember, you can only connect one app to the Arrow via Bluetooth® . If you try to connect multiple apps to a single receiver, you may experience issues such as dropped or unstable Bluetooth® connectivity.
Glossary of Terms
Any app used to collect high-accuracy data on Android devices
Eos Tools Pro
A free GNSS monitoring app, typically used in conjunction with a data-collection app
Information about the quality of your location and differential corrections
The built-in location capability of your Android device, typically 5m or more
An Android feature available in the “Developer” mode that lets you overwrite your Android’s Internal Location
A standard, non-proprietary format used by most GNSS receivers to output location information to an app
A standard protocol used to broadcast (via either NTRIP server or caster) as well as receive (via NTRIP client) GNSS differential corrections over the Internet