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