magnetometerEvents property
A broadcast stream of events from the device magnetometer.
Implementation
@override
Stream<MagnetometerEvent> get magnetometerEvents {
if (_magnetometerStreamController == null) {
_magnetometerStreamController = StreamController<MagnetometerEvent>();
_featureDetected(
() {
final magnetometerSensor = html.Magnetometer();
setProperty(
magnetometerSensor,
'onreading',
allowInterop(
(_) {
_magnetometerStreamController!.add(
MagnetometerEvent(
magnetometerSensor.x as double,
magnetometerSensor.y as double,
magnetometerSensor.z as double,
),
);
},
),
);
magnetometerSensor.start();
magnetometerSensor.onError.forEach(
(e) => developer.log(
'The magnetometer API is supported but something is wrong!',
error: e),
);
},
apiName: 'Magnetometer()',
permissionName: 'magnetometer',
onError: () {
_magnetometerStreamController!.add(MagnetometerEvent(0, 0, 0));
},
);
_magnetometerResultStream =
_magnetometerStreamController!.stream.asBroadcastStream();
}
return _magnetometerResultStream;
}