J'écris donc une application qui détecte les mouvements et doit être calibrée pour divers mouvements. Au cours des derniers jours, j'ai remarqué que juste après un SensorEventListener
est enregistré, onSensorChanged(SensorEvent)
jette incomplète (et donc erronée) .values[]
. Ce comportement détraque mon processus d'étalonnage, et la quantité de force qui signifie un mouvement est trop élevée. J'ai vérifié que c'est le cas pour toutes les applications d'enregistrement d'accéléromètre que j'ai téléchargées et testées, donc ce n'est pas une erreur spécifique à mon code. Je pense que cela pourrait être causé par un mauvais matériel (peut-être spécifique à mon moto droid 1), ou un bug logiciel par la ROM personnalisée que j'utilise (Simply Stunning 4.9, source Froyo 2.2.1.)Android - accéléromètre sur motodroid 1 signale des valeurs incorrectes au premier abord?
Exemple:
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SENSOR_DELAY);
....
onSensorChanged(SensorEvent event){
// event.values[0] = 0.0
// event.values[1] = -0.47
// event.values[2] = 0.0
}
....
onSensorChanged(SensorEvent event){
// event.values[0] = 0.08
// event.values[1] = -0.47
// event.values[2] = 0.0
}
....
onSensorChanged(SensorEvent event){
// event.values[0] = 0.08
// event.values[1] = -0.47
// event.values[2] = 10.1
}
Comme vous pouvez le voir, il faut souvent 2 lectures avant que toutes les valeurs correctes soient accessibles.
Est-ce que quelqu'un peut confirmer ou infirmer ce comportement sur le moto droid 1 ou un autre téléphone? Pensez-vous qu'une bonne solution consiste simplement à laisser tomber les 2 ou 3 premières lectures afin qu'elles ne déforment pas mon étalonnage?
Expérience similaire avec deux droïdes motorola. – luser845