diff --git a/gnss/1.0/default/GnssUtils.cpp b/gnss/1.0/default/GnssUtils.cpp index 4b3ca440fb..82a516bc01 100644 --- a/gnss/1.0/default/GnssUtils.cpp +++ b/gnss/1.0/default/GnssUtils.cpp @@ -28,7 +28,10 @@ GnssLocation convertToGnssLocation(GpsLocation* location) { GnssLocation gnssLocation = {}; if (location != nullptr) { gnssLocation = { - .gnssLocationFlags = location->flags, + // Bit operation AND with 1f below is needed to clear vertical accuracy, + // speed accuracy and bearing accuracy flags as some vendors are found + // to be setting these bits in pre-Android-O devices + .gnssLocationFlags = static_cast(location->flags & 0x1f), .latitudeDegrees = location->latitude, .longitudeDegrees = location->longitude, .altitudeMeters = location->altitude,