GnssAggregator
Fans Android's two raw-GNSS callbacks into a single per-fix aggregate and forwards it to the engine via a Listener.
- GnssStatus.Callback (~1 Hz while GPS is active) supplies satellite counts and per-SV CN0.
- GnssMeasurementsEvent.Callback (also ~1 Hz when supported) supplies the multipath indicator. Hardware support varies; older / lower-tier devices return
falsefromregisterGnssMeasurementsCallback, in which case multipath counts stay at 0 and the engine's classifier falls through to the CN0 + sat-count axes alone.
Permission: requires ACCESS_FINE_LOCATION, the same grant the existing GPS pipeline already needs — no additional permission prompt.
iOS has no equivalent — CLLocationManager does not expose raw GNSS to third-party apps. iOS bindings will not call SensorDataManager.addGnssAggregate.