startListening method
void
startListening()
Starts listening to accelerometer events
Implementation
void startListening() {
streamSubscription = accelerometerEvents.listen(
(AccelerometerEvent event) {
double x = event.x;
double y = event.y;
double z = event.z;
double gX = x / 9.80665;
double gY = y / 9.80665;
double gZ = z / 9.80665;
// gForce will be close to 1 when there is no movement.
double gForce = sqrt(gX * gX + gY * gY + gZ * gZ);
if (gForce > shakeThresholdGravity) {
var now = DateTime.now().millisecondsSinceEpoch;
// ignore shake events too close to each other (500ms)
if (mShakeTimestamp + shakeSlopTimeMS > now) {
return;
}
// reset the shake count after 3 seconds of no shakes
if (mShakeTimestamp + shakeCountResetTime < now) {
mShakeCount = 0;
}
mShakeTimestamp = now;
mShakeCount++;
if (mShakeCount >= minimumShakeCount) {
onPhoneShake();
}
}
},
);
}