android enlever la gravité des lectures d'accéléromètre

Je développe une application pour Android, où j'ai besoin de retirer de la gravité de l'accéléromètre lectures. J'ai lu plusieurs discussions sur ce problème, j'ai aussi trouvé un algorithme icimais je n'ai pas vraiment le comprendre.

Je veux filtre de gravité de chaque axe, pas de l'accélération totale.

Pourriez-vous svp m'aider? Mon code doit être quelque chose comme:

public void onSensorChanged(SensorEvent sensorEvent) {
    float vals[] = sensorEvent.values;
    float accelerationX = filterGravity(vals[0]);
    float accelerationY = filterGravity(vals[1]);
    float accelerationZ = filterGravity(vals[2]);
}

Quel code dois-je placer dans le filterGravity() la méthode?

source d'informationauteur Gabriel