Search code examples
androidgpslocationandroid-gps

Which phones currently support Android's raw GNSS Navigation Messages API?


Do any phones currently support GnssNavigationMessage?

Developer Doc: https://developer.android.com/reference/android/location/GnssNavigationMessage.Callback.html

The 2016 Google I/O conference and an article from gpsworld.com indicated that Nexus 9 tablet, Nexus 5x phone, Nexus 6p phone, Pixel phone and the Pixel XL phone support GNSS raw measurements.

I am able to access the raw measurements, but not the navigation messages. When I run my own app or Google's GNSS Logger (GitHub, GPS measurement tool), my Nexus 5x and Pixel phones return status 0 (Not Supported) for GNSS Navigation Messages.

It would be great to analyze the raw navigation messages from each satellite; i.e. the almanac, ephemeris, and other data. But I have been unable to find a phone that runs Android 7.0 or later that actually supports the new API (which seems optional).

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.registerGnssNavigationMessageCallback(new GnssNavigationMessage.Callback() {
    @Override
    public void onGnssNavigationMessageReceived(GnssNavigationMessage event) {
        // never runs
    }

    @Override
    public void onStatusChanged(int status) {
        // runs once with status == 0
    }
});

Solution

  • On 21 June a new page in Android developer appeared which lists phones and their capabilities: https://developer.android.com/guide/topics/sensors/gnss.html It is a very lightweight list, only western phones, no indication of whether all phones with a particular chipset have the functionality [ie all 835 chipset phones?] etc, but my be of some use.