Expanding the ways in which developers can interact with our APIs is important for us and something we take seriously. When we began discussing with the EU’s GSA about our inclusion in the Galileo Hackathon we knew that a new feature needed to be added to our API: raw location values.

With Android 7.0 Google introduced the ability for developers to access raw location values from the android.location class and not just those returned by Android’s fusedlocation. The most meaningful piece of this new ability is that developers did not have to rely on Google’s choice for location satellite, instead granting them the ability to be selective. Adding GNSS, which stands for Global Navigation Satellite System, classes to the android.location class gives the developer granular ability for location.

For the Galileo Hackathon the core direction was that the developers needed to access the EU’s Galileo navigation system which went into public use in December 2016. To that end our APIs needed an update for this new feature.

With HyperTrack we natively rely on fusedlocation to present the most accurate location values as pulled from multiple sources on the device. To enable granular GNSS support required us to add new methods to the API in the form of a utility method to Get GNSS Measurements. The below code sample provides how the developer would go about accessing these values:

The developer would call HyperTrack.setGnssStatusCallback API to set an instance of GnssStatus.Callback. This callback is invoked on every GNSS measurement update and the raw GNSS measurements can be retrieved via the onSatelliteStatusChanged() method casted as GnssStatus.

The above was used successfully by those who participated in the Hackathon and we are proud to have been part of it. If you have any questions about how to use raw values with HyperTrack please reach out via email or our Slack support channel.