The recognition of Double Flip is limited in accuracy by the hardware sensors that are available
in the phone. For Android phones, there are often two sensors: the accelerometer
and the magnetometer. With these two sensors, it is possible to recover the orientation
of a phone that Double Flip relies on. However, the Double Flip recognizer is limited in several cases:
- The recognizer is turned off when the phone is pointing to the magnetic poles of the earth.
Since the sensor data from the accelerometer alone is not enough, we rely on the strength of the
earth's magnetic field. When the phone is pointing towards the magnetic poles,
it is impossible to tell how much the user have rotated the phone.
To prevent the hassle that random movements could activate the gesture,
we turn off the recognizer under such case.
- The recognizer does not work well when the user is moving.
This limitation comes from the accelerometer. For example, when the user is walking,
the sensor data from the accelerometer is greatly affected.
For the same reason, the recognizer works poorly when the user is on a car or bus that is moving unevenly.
- The recognizer does not work ideally when the phone is positioned vertically.
In the vertical orientation, rotating the phone has a little effect on the accelerometer.
As a result, the recognizer can only rely on the magnetometer and is less accurate. So
we enable the recognition when the phone is vertical only in the "Easy to trigger" mode.
- The recognizer does not prefer fast movement.
In our observation, it is common that when users fail in activating the gesture,
they try faster. Since the rate of incoming sensor data is fixed, the faster the motion is,
the less signals the recognizer will receive for the gesture, and the less accurate the
recognition will be. Furthermore, a fast flip can cause other problems
including dropping your phone accidentally and RSI. Our suggestion is to perform the gesture around one second.
- The recognizer does not prefer large-angle (close to 180 degree) rotations.
The positions of the sensors on the phone is different from model to model.
For some phones, a rotation with large angle (close to 180 degree),
is less detectable than a rotation with a bit over 90 degree.
Also, rotations in large angles can cause the phone dropped to the ground.
Our suggestion is to rotate the phone a bit over 90 degree.
These limitations can be overcome as the sensors in the phone are improved in the future.