magnetometer method
Stream<MagnetometerEvent>
magnetometer({
- Duration samplingPeriod = SensorInterval.normalInterval,
Implementation
Stream<MagnetometerEvent> magnetometer({
Duration samplingPeriod = SensorInterval.normalInterval,
}){
// The Magnetometer API is not supported by any modern browser.
if (_magnetometerStreamController == null) {
_magnetometerStreamController = StreamController<MagnetometerEvent>();
_featureDetected(
() {
final magnetometerSensor = Magnetometer(
SensorOptions(
frequency: samplingPeriod.frequency,
),
);
magnetometerSensor.start();
magnetometerSensor.onreading = (Event _) {
_gyroscopeEventStreamController!.add(
GyroscopeEvent(
magnetometerSensor.x,
magnetometerSensor.y,
magnetometerSensor.z,
),
);
}.toJS;
magnetometerSensor.onerror = (SensorErrorEvent e) {
developer.log(
'The magnetometer API is supported but something is wrong!',
error: e,
);
}.toJS;
},
apiName: 'Magnetometer()',
permissionName: 'magnetometer',
onError: () {
_magnetometerStreamController!.add(MagnetometerEvent(0, 0, 0));
},
);
_magnetometerResultStream =
_magnetometerStreamController!.stream.asBroadcastStream();
_magnetometerStreamController!.onCancel = () {
_magnetometerStreamController!.close();
};
}
return _magnetometerResultStream;
}